鉴于此模型:
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)
但这些也不起作用。
答案 0 :(得分:2)
过滤列表过滤列表中的每个项目。因此,如果你过滤('names ==','x'),它会在名单中找到任何包含'x'的实体。
不幸的是,你不能用这种方式找到一个空列表。最好的办法是在测试模型中添加另一个属性,列表大小的整数或布尔值isEmpty,而不是查询。