将def list()添加到模型视图集中时,Django rest框架过滤器和搜索不起作用

将def list()添加到模型视图集中时,Django rest框架过滤器和搜索不起作用,django,django-rest-framework,Django,Django Rest Framework,我正在使用Django rest框架编写API。我在ModelViewSet中添加了搜索过滤器和排序过滤器,效果良好 class bookviewset(ModelViewSet): queryset = Book.objects.all() serializer_class = book_serializer filter_class = bookfilter filter_backends = ( django_filters.rest_framework.

我正在使用Django rest框架编写API。我在ModelViewSet中添加了搜索过滤器和排序过滤器,效果良好

class bookviewset(ModelViewSet):

    queryset = Book.objects.all()
    serializer_class = book_serializer
    filter_class = bookfilter
    filter_backends = ( django_filters.rest_framework.DjangoFilterBackend,filters.OrderingFilter,filters.SearchFilter)
    ordering_fields = ('created_at', 'id','price_ids__price',)
    search_fields = ('name', 'description', 'tag_ids__tag_name', 'category_ids__category')
但是,当我覆盖Modelviewset内的
def列表(self、request、*args、**kwargs):
时,所有过滤器都停止工作

是否有办法再次启用所有过滤器


谢谢。

您必须使用此
筛选\u queryset
方法手动筛选查询集。因此,将这一行添加到列表方法中

def list(self, request, *args, **kwargs):
    # fetch qs
    qs = self.filter_queryset(qs)
    # etc

显示覆盖代码