如何查找具有空StringListProperty的实体?

时间:2013-03-13 18:04:45

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

鉴于此模型:

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

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

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

但它引发了异常: BadValueError:不支持过滤列表

this very similar question,我也尝试过:

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

但这些也不起作用。

1 个答案:

答案 0 :(得分:2)

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

不幸的是,你不能用这种方式找到一个空列表。最好的办法是在测试模型中添加另一个属性,列表大小的整数或布尔值isEmpty,而不是查询。