【问题标题】:Django Filter using multiple Foreign Keys使用多个外键的 Django 过滤器
【发布时间】:2020-11-08 20:54:05
【问题描述】:

我正在尝试制作一个 django 过滤器来过滤基于使用外键连接的多个模型的值。 我的模型看起来像:

model test1(models.Model):
    name=models.CharField()
    ..........some more fields
models test2(models.Model):
    name = models.CharField()
    code  = models.CharField()
models test3(models.Model):
    name = models.CharField()
    code  = models.CharField()
model test4(models.Model):
    first = models.ForeignKey(test1, on_delete=models.CASCADE)
    second = models.ForeignKey(test2, on_delete=models.CASCADE, blank=True, null=True)
    third = models.ForeignKey(test3, on_delete=models.CASCADE, blank=True, null=True)

我想从 test1 中创建一个过滤器来过滤 test2 和 test3 值。此外,模型 test4 中的第二个或第三个字段中的一个且只有一个每次都会为空。

目前我正在尝试使用 django_filters 但无法查找这些字段。我该如何接近

【问题讨论】:

  • 我尝试使用AllValuesMultipleFilter,但它返回数字(可能是 id)

标签: python django django-filter django-filters


【解决方案1】:

您可以使用两个连续的下划线 (__) 过滤相关模型:

from django_filters import CharFilter, FilterSet

class ProductFilter(FilterSet):
    first_name = CharFilter(field_name='first__name')
    second_code = CharFilter(field_name='second__code')

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 2018-08-28
    • 2019-02-12
    • 2014-09-15
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多