次のモデルのユーザーがあり、「黄色」が好きで「赤」が好きではないすべてのユーザーを取得したいと考えています。
class User(db.Model):
name = db.StringProperty(required=True)
favorite_colors = db.StringListProperty(required=True)
これは機能します (少なくとも 1 つのお気に入りの色「黄色」を持つすべてのユーザーが返されます)。
results = db.GqlQuery(
"SELECT * FROM User "
"WHERE favorite_colors = 'yellow'")
しかし、これは私が期待したことをしません:
results = db.GqlQuery(
"SELECT * FROM User "
"WHERE favorite_colors = 'yellow' "
"and favorite_colors != 'red'")
同じユーザーのリストが返されます。リストに「赤」がまったく含まれていない場合ではなく、お気に入りの色のいずれかが「赤」と異なるかどうかをテストしていると思います。
ある項目を含み、別の項目を含まない結果のみをフィルタリングするにはどうすればよいですか?