如何使用django rest框架根据子数据过滤父数据?

如何使用django rest框架根据子数据过滤父数据?,django,django-filters,Django,Django Filters,假设我有两个模型,叫做A,B 例如: 现在我想创建filterset,这样我可以根据模型B对象信息过滤模型A中的数据 我试图实现这样的目标,但它只适用于模型A中可用的字段 下面是代码片段 class ProductFilterSet(filters.FilterSet): min_price = filters.NumberFilter(field_name="price", lookup_expr='gte') max_price = filters.Num

假设我有两个模型,叫做A,B

例如:

现在我想创建filterset,这样我可以根据模型B对象信息过滤模型A中的数据

我试图实现这样的目标,但它只适用于模型A中可用的字段

下面是代码片段

class ProductFilterSet(filters.FilterSet):
    min_price = filters.NumberFilter(field_name="price", lookup_expr='gte')
    max_price = filters.NumberFilter(field_name="price", lookup_expr='gte')
    category = filters.ModelMultipleChoiceFilter(queryset=Category.objects.all())
    company = filters.ModelMultipleChoiceFilter(queryset=Company.objects.all())
    size = filters.ModelMultipleChoiceFilter(queryset=VariationSize.objects.all())

    class Meta:
        model = Product
        fields = ['category', 'min_price', 'max_price', 'company', 'size']
对于最低价格、最高价格、类别和公司来说,它运行良好,但在
大小的情况下,我得到的名称无效,因为大小字段仅存在于模型B中

下面是截图片段

class ProductFilterSet(filters.FilterSet):
    min_price = filters.NumberFilter(field_name="price", lookup_expr='gte')
    max_price = filters.NumberFilter(field_name="price", lookup_expr='gte')
    category = filters.ModelMultipleChoiceFilter(queryset=Category.objects.all())
    company = filters.ModelMultipleChoiceFilter(queryset=Company.objects.all())
    size = filters.ModelMultipleChoiceFilter(queryset=VariationSize.objects.all())

    class Meta:
        model = Product
        fields = ['category', 'min_price', 'max_price', 'company', 'size']