Как сохранить свойство Text, используя Clojure и appengine-magic - PullRequest
1 голос
/ 01 апреля 2011

Поле 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).

1 Ответ

2 голосов
/ 01 апреля 2011

Из документации appengine-magic:

as-text: приводит строку к com.google.appengine.api.datastore.Text.

Итак, выдолжен передать java.lang.String в as-text.

(as-text body)
...