如何使用django rest框架根据子数据过滤父数据?
假设我有两个模型,叫做A,B 例如: 现在我想创建filterset,这样我可以根据模型B对象信息过滤模型A中的数据 我试图实现这样的目标,但它只适用于模型A中可用的字段 下面是代码片段如何使用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
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']