如何筛选对不包含的项目的StringListProperty?
-
19-09-2019 - |
题
我所拥有的用户下面的模型,我想所有的用户,像“黄”,但不喜欢“红”。
class User(db.Model):
name = db.StringProperty(required=True)
favorite_colors = db.StringListProperty(required=True)
这个工作(即具有至少一个最喜欢的颜色的所有用户“黄色”返回):
results = db.GqlQuery(
"SELECT * FROM User "
"WHERE favorite_colors = 'yellow'")
但是,这并不做什么,我预计:
results = db.GqlQuery(
"SELECT * FROM User "
"WHERE favorite_colors = 'yellow' "
"and favorite_colors != 'red'")
返回用户的相同的列表。我认为,这是测试如果任何最喜欢的颜色是所有从“红色”,而不是如果列表中不包含“红色”不同。
如何过滤只包含一个项目,而不是另一个?结果
解决方案
可以不筛选不存在项目。你的第二个查询查找大家的是,具有不“红”的项目在他们的名单“黄”,以及至少一个项目。
如果您的项目组是有限的,你可能想改变你的表现,包括“不”的条目 - 例如,“黄”,“不蓝”,“不红”。否则,你需要做Python代码过滤。
不隶属于 StackOverflow