【问题标题】:Django-Filter: Search within an ArrayField with an Array?Django-Filter:使用数组在 ArrayField 中搜索?
【发布时间】:2022-01-29 11:06:38
【问题描述】:

我有一个使用 arrayField 的 all_positions 数据点。所以一些示例数据如下所示:

all_positions: ["C", "1B"],
all_positions: ["RP", "CP"],
all_positions: ["CP"],

我希望能够发出类似于/api/player-profiles/?all_positions=RP,CP 的请求并返回第二个和第三个示例。本质上,我想返回所有将任何位置传递到其all_positions 数据中的 URL 的玩家。

我读过关于重叠的文章,但不确定如何将它整合到我的 django-rest 过滤器中。这是过滤器当前的样子:

class PlayerProfileFilter(django_filters.FilterSet):
    all_positions = CharInFilter(field_name='all_positions', lookup_expr='contains')

【问题讨论】:

  • 你把lookup_expr='contains'改成lookup_expr='overlap'了吗
  • @Ahtisham 就是这样。谢谢!

标签: django django-rest-framework django-filter


【解决方案1】:

只需将lookup_expr 中的查找过滤器从contains 更改为overlap

class PlayerProfileFilter(django_filters.FilterSet):
       all_positions = CharInFilter(field_name='all_positions', lookup_expr='overlap')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2019-11-27
    • 2014-10-16
    • 2011-04-13
    • 2019-03-06
    相关资源
    最近更新 更多