小编Jer*_*uez的帖子

过滤动作装饰器 - Django Rest Framework

我正在尝试使用 Django Rest Framework 上的装饰器操作过滤数据,如果我使用全局查询集(get_queryset() 函数),它可以完美运行,但我需要在单独的函数中使用它。

我正在使用 django-filter 来执行它。这是代码。

我的看法:

class ShippingAPI(viewsets.ModelViewSet):
    serializer_class = ShippingSerializer
    filter_backends = (DjangoFilterBackend,)
    filter_fields = ('origin__department', 'destination__department', 'first_collection_date', 'last_collection_date', 'vehicle')
Run Code Online (Sandbox Code Playgroud)

覆盖(动作)

@action(detail=False, methods=['GET'])
def filter_shippings(self, request, **kwargs):
    queryset = Shipping.objects.filter(status=2, orderStatus=0)
    serializer = SearchShippingSerializer(queryset, many=True) #Yes, I am using another serializer, but it is solved,I use diferent if it is necesary
    return Response(serializer.data)
Run Code Online (Sandbox Code Playgroud)

使用我的 url 'api/filter_shipping/(all filters here)'后,这仍然返回没有我请求的过滤器的所有数据。

谢谢你的帮助

python django django-filter django-rest-framework

5
推荐指数
3
解决办法
8853
查看次数