0

鉴于此模型:

class TestModel(db.Model):
  names = db.StringListProperty(required=False)

我想找到具有空名称属性的实体,所以我尝试了这个:

TestModel.all().filter('names ==', [])

但它引发了异常:BadValueError: Filtering on lists is not supported

这个非常相似的问题中,我也尝试过:

TestModel.all().filter('names <', None)
TestModel.all().filter('names ==', None)

但这些也不起作用。

4

1 回答 1

2

过滤列表过滤列表中的每个项目。因此,如果您 filter('names ==', 'x'),它将在名称列表中找到任何包含 'x' 的实体。

不幸的是,您无法通过这种方式找到空列表。最好的办法是添加另一个属性来测试模型,可以是列表大小的整数,也可以是布尔值 isEmpty,然后对其进行查询。

于 2013-03-13T18:26:39.150 回答