Как проверить нулевое значение для UserProperty в Google App Engine - PullRequest
5 голосов
/ 10 августа 2009

В Google App Engine, моделировании хранилища данных, я хотел бы спросить, как я могу проверить нулевое значение свойства с классом UserProperty? например: У меня есть этот код:

class Entry(db.Model):
  title = db.StringProperty()
  description = db.StringProperty()
  author = db.UserProperty()
  editor = db.UserProperty()
  creationdate = db.DateTimeProperty()

Когда я хочу проверить те записи, у которых редактор не равен NULL, я не могу использовать этот вид GqlQuery

query = db.GqlQuery("SELECT * FROM Entry " +
                    "WHERE editor IS NOT NULL" +
                                    "ORDER BY creationdate DESC")
    entries = query.fetch(5)

Мне интересно, есть ли какой-нибудь метод проверки существования переменной с помощью UserProperty? Спасибо!

1 Ответ

13 голосов
/ 10 августа 2009
query = db.GqlQuery("SELECT * FROM Entry WHERE editor > :1",None)

Однако вы не можете ORDER BY один столбец и иметь условие неравенства для другого столбца: это хорошо известное ограничение GAE и не имеет ничего общего ни со свойством, являющимся UserProperty, ни с проверка неравенства вы делаете с None.

Редактировать : раньше у меня был! =, Но, как указывал @Nick, все, что есть! = Нет -> Нет, а> в GAE примерно в два раза быстрее (поскольку! = Синтезируется объединение <и>), поэтому использование> здесь является полезной оптимизацией.

...