gpt4 book ai didi

null - 空 IntegerProperty 的 GQL 测试

转载 作者:行者123 更新时间:2023-12-01 11:09:47 24 4
gpt4 key购买 nike

我正在尝试查询 IntegerProperty 为空(无)的 Google App 引擎中的记录。这是我尝试但没有成功的方法:

data = db.GqlQuery("SELECT * FROM MyModel WHERE intProp=:1",None)

还有一个查询:

query = db.Query(MyModel)
query = query.filter('intProp', None)
data = query.fetch(limit=100)

如有任何帮助,我们将不胜感激。

class MyModel(db.Model):
intProp = db.IntegerProperty()

最佳答案

您的代码看起来是正确的。您实际上是否有任何 MyModel 的实例,其 intPropNone...?

编辑:根据 OP 的评论,这显然是架构迁移的问题;他添加了一个新属性并期望现有实体让它出现(设置为无)。根据 the docs,这不是 GAE 中模式更改的工作方式:

The App Engine datastore doesn't require all entities to have the same set of properties. After updating your models to add new properties, existing entities will continue to exist without these properties. In some situations, this is fine, and you don't need to do any more work. When would you want to go back and update existing entities so they also have the new properties? One situation would be when you want to do a query based on the new properties. In our example with Pictures, queries like "Most popular" or "Least popular" wouldn't return existing pictures, because they don't (yet) have the ratings properties. To fix this, we'll need to update the existing entities in the datastore.

我引用的文章继续展示了一种方法,但这是一种非常老式的方法,在 GAE 有计划任务、远程 api 等之前。我们现在可以做得更好。 App Engine Fan 最近有一个 post这显示了一般方法(以及他在自己的模式迁移过程中犯的错误,以便其他人可以避免!),并指向 remote API作为关键工具;他还指向a module (来自 Rietveld 开源核心审查项目,由 Python 的作者和 App Engine 开发的主要贡献者 Guido van Rossum 发起)整齐而正确地完成任务(您需要稍微调整该代码以便当然,它使用您的模型 &c 而不是 Rietveld 的模型。

关于null - 空 IntegerProperty 的 GQL 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com