我最近不得不将我的模型的一个属性从类型StringProperty
更新为TextProperty
,以便克服限制性限制(最多500个字符)。在我意识到我的一些旧查询之前,这不是问题:
SomeEntity.gql('WHERE property1!=:1',None)
其中property1
是模型中的属性无法工作: - (。
此查询以前有效,它确实帮助我只获取值为property1
的实体。
如何在类型为TextProperty
答案 0 :(得分:1)
您无法在TextProperty上过滤或订购。要实现您想要的功能,请添加一个新的BooleanProperty“has_text”并对其进行过滤。然后,只要更改TextProperty,就必须确保设置BooleanProperty。
此解决方案遵循Google App Engine预先计算您要过滤的所有内容的一般惯例。
答案 1 :(得分:0)
如果您使用的是ndb,那么添加ComputedProperty通常是进行任何查询过滤器无法轻易表达的最佳方式。请注意,在为索引添加新属性之后,必须重新放置每个实体(这适用于之前建议的布尔属性)