我创建了一个新的属性在谷歌App Engine数据存储我的数据库模型。

旧:

class Logo(db.Model):
  name = db.StringProperty()
  image = db.BlobProperty()

新:

class Logo(db.Model):
  name = db.StringProperty()
  image = db.BlobProperty()
  is_approved = db.BooleanProperty(default=False)

如何查询为标志的记录,其中没有“is_approved”值设置? 我试图

logos.filter("is_approved = ", None)

但它没有工作。 在Data Viewer新的字段值被显示为

有帮助吗?

解决方案

根据上查询和索引的App Engine文档,存在实体之间的区别有为属性没有值,并且那些具有为它值;和“实体没有一个过滤属性永远不会被查询返回的。”所以这是不可能的编写一个查询这些旧记录。

一个有用的文章是更新模型的架构,该说的唯一目前支持的方式来寻找失踪的某些属性的实体是检查所有的人。所述制品具有示出的示例代码如何通过一大组实体的周期和更新它们。

其他提示

也许这种情况已经改变,但我能够基于筛选记录的无效字段。

当我尝试GQL查询SELECT * FROM Contact WHERE demo=NULL,它只会返回演示现场丢失的记录。

根据该文档 http://code.google.com/应用服务引擎/文档/蟒/数据存储/ gqlreference.html

  

一个比较的右手侧可以是下列中的一个(如   适合于属性的数据类型):[...]布尔文字,如TRUE或   假;在 NULL 文字,它表示空值(在无   Python)的

我不知道那的“空” 相同的“失踪” 虽然:在我的情况下,这些领域已经存在在我的模型,但没有填充在创建。也许费德里科你可以让我们知道,如果NULL查询您的特定情况下运作的?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top