【发布时间】:2017-10-14 00:20:17
【问题描述】:
我将DRF 与django-rest-framework-filters 一起使用。
模型是:具有许多 OrderItems 的订单。任务是创建过滤器,允许按订单项数搜索订单或按数量排序。
在我看来.py:
class OrderFilter(filters.FilterSet):
order_items_count = filters.NumberFilter(name="order_items__count")
customer = filters.RelatedFilter(
CustomerFilter,
name='customer',
queryset=Customer.objects.all(),
)
class Meta:
model = Order
fields = {
'internal_code': ['icontains'],
'notes': ['icontains'],
'status': ['exact'],
'complete': ['exact'],
'order_items_count': ['exact']
}
class OrderViewSet(BaseViewSet, viewsets.ModelViewSet):
queryset = Order.objects.all()
serializer_class = OrderSerializer
filter_class = OrderFilter
filter_backends = (
OrderingFilter,
DjangoFilterBackend,
)
ordering_fields = (
'internal_code',
'notes',
'status',
'complete',
'customer__title',
'order_items__count',
)
应要求 /orders?order_items_count=2 我收到错误:
相关字段查找无效:计数
如何为模型的孩子数创建自定义过滤器?谢谢你。
附:这是我关于stackowerflow的第一个问题,对于样式错误感到抱歉。
【问题讨论】:
标签: django django-rest-framework