Поле body
формы может содержать длинный текст, поэтому свойство String по умолчанию не подойдет.
В поисках того, как заставить хранилище данных использовать текст (это не часть определения объекта, насколько я помню из версии Python), я нашел это в источнике блога ackbar:
(ns <snip>
(:import (com.google.appengine.api.datastore
EntityNotFoundException Text)))
<snip>
(ds/save! (Post. url title (Text. body) ts in-feed? category))
Но если я сделаю то же самое, я получаю: «java.lang.RuntimeException: java.lang.IllegalArgumentException: не знаю, как создать ISeq из: com.google.appengine.api.datastore.Text»
(Одним заметным отличием является то, что акбар, на который я смотрю, использует appengine-magic 0.3.2.)
Я также попробовал as-text
, как кратко упоминалось в https://github.com/gcv/appengine-magic#readme, но (as-text body)
приводит к тому же сообщению об ошибке, что и выше.
РЕДАКТИРОВАТЬ: оказалось, что проблема заключалась не в том, чтобы получить свойство Text в хранилище, а в том, чтобы понять его при его извлечении. Мой обработчик отправки вызывает сохранение, а затем перезагрузку страницы формы, и я не подумал об этом. Извините за шум.
Способ получить значение без сбоев — (.getValue body)
.
type
, чтоbody
являетсяjava.lang.String
. 01.04.2011