【问题标题】:Google app engine IN filterGoogle 应用引擎 IN 过滤器
【发布时间】:2023-04-02 13:34:01
【问题描述】:

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

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

"test1,test2,test3,test4,test5"

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

我尝试了以下 where tags 是字符串属性:

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

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

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

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

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

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

    我会亲自将其更改为 StringListProperty。

    【讨论】:

      【解决方案2】:

      如错误所示,GQL 需要一个列表。尝试制作category 列表:

      category = ["test1"]
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2019-01-16
      • 1970-01-01
      • 2010-12-22
      • 2018-11-25
      • 2013-08-30
      相关资源
      最近更新 更多