如何在Google App Engine中检查UserProperty的空值

时间:2009-08-09 20:29:00

标签: python google-app-engine google-cloud-datastore

在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 个答案:

答案 0 :(得分:13)

query = db.GqlQuery("SELECT * FROM Entry WHERE editor > :1",None)

但是,你不能ORDER BY一列在另一列上有不等式条件:这是一个众所周知的GAE限制,与作为UserProperty的属性无关也没有与不平等检查你正在做无。

编辑:之前我有一个!=,但正如@Nick指出的那样,任何东西都是!=无是>无,和>在GAE上大约快两倍(因为!=由<和>的联合合成),所以使用>这是一次有价值的优化。