0

我正在使用 python 2.7、jinja2 和谷歌应用引擎。

我有一个数据库,其中一个实体是这种形式的字符串:

"test1,test2,test3,test4,test5"

我试图找出一个查询,我将在其中检索例如 test1 在字符串中的所有实体。

我尝试了以下标签是字符串属性的方法:

category = "test1"
mymodel.gql("WHERE tags in :1", category)

我有这个错误:BadArgumentError: List expected for "IN" filter

我可以想象这是合乎逻辑的,因为我的属性是字符串而不是列表,但是如何更改查询以使其工作?

4

2 回答 2

0

如错误所示,GQL 需要一个列表。试着category列一个清单:

category = ["test1"]
于 2013-06-07T22:17:26.727 回答
0

您必须将您的属性修改为 StringListProperty 而不是字符串才能正常工作。

其他的选择也不是很多。使用全文搜索或类似 WHOosh https://github.com/tallstreet/Whoosh-AppEngine 也可以进行全文搜索是您的其他选择。

我会亲自将其更改为 StringListProperty。

于 2013-06-08T01:50:02.027 回答