我使用的是python 2.7,jinja2和google app引擎。
我有一个数据库,其中一个实体是这种形式的字符串:
"test1,test2,test3,test4,test5"
我试图找出一个查询,我将检索其中test1例如字符串中的所有实体。
我尝试了以下其中tags是字符串属性:
category = "test1"
mymodel.gql("WHERE tags in :1", category)
我有这个错误:BadArgumentError: List expected for "IN" filter
我可以想象这是合乎逻辑的,因为我的属性是字符串而不是列表,但是如何更改查询以使其有效?
答案 0 :(得分:0)
如错误所示,GQL期待列表。尝试将category
列入清单:
category = ["test1"]
答案 1 :(得分:0)
您必须将您的属性修改为StringListProperty而不是字符串才能使其生效。
也没有很多其他选择。使用FullText搜索或类似WHoosh https://github.com/tallstreet/Whoosh-AppEngine这样的全文搜索也是您的另一种选择。
我个人会将其更改为StringListProperty。