【问题标题】:How to filter against multiple values for ForeignKey using DjangoFilterBackend如何使用 DjangoFilterBackend 过滤 ForeignKey 的多个值
【发布时间】:2017-04-02 00:43:51
【问题描述】:

我有以下字段的模型:

  • loading_port
  • discharge_port
  • 载体
  • 供应商

所有这些字段都是包含 name 字段的模型的 ForeignKey。

我还有视图集,它使用 DjangoFilter 后端进行过滤。此时我想为每个字段过滤多个值,例如:

loading_port__name=PORT_1&loading_port__name=PORT_2&supplier__name=SUPP_NAME_1&supplier__name=SUPP_NAME_2 等等。但是,如果我实际传递此 url,它会返回针对最后一个参数值进行过滤的行(在此示例中,用于 loading_port - PORT_2,用于供应商 - SUPP_NAME_2)。

如何修复过滤以使其满足我的要求?

【问题讨论】:

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


【解决方案1】:

但是,如果我实际上传递了这个 url,它会返回针对最后一个参数值进行过滤的行

这是因为ForeignKey 字段默认为ModelChoiceFilter,它只从GET QueryDict 中获取一个值。

如果您将字段声明为ModelMultipleChoiceFilter,它们将获取您需要的值列表。

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 2018-12-04
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2020-06-22
    • 2021-05-26
    • 2017-07-26
    相关资源
    最近更新 更多