将def list()添加到模型视图集中时,Django rest框架过滤器和搜索不起作用
我正在使用Django rest框架编写API。我在ModelViewSet中添加了搜索过滤器和排序过滤器,效果良好将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.
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
显示覆盖代码