使用多个外键的 Django 过滤器

Django Filter using multiple Foreign Keys

我正在尝试制作一个 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 但无法查找这些字段。我该如何接近

您可以筛选带有两个连续下划线的相关模型(__):

from django_filters import CharFilter, FilterSet

class ProductFilter(FilterSet):
    first_name = CharFilter(<b>field_name='first__name'</b>)
    second_code = CharFilter(<b>field_name='second__code'</b>)