gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:25:09 25 4
gpt4 key购买 nike

我正在研究用 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')

但是,当我覆盖 def list(self, request, *args, **kwargs): 时在 Modelviewset 中,所有过滤器都停止工作。

有没有办法再次启用所有过滤器?

谢谢你。

最佳答案

您必须使用此 filter_queryset 手动过滤您的查询集方法。因此,将此行添加到您的列表方法中。

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

关于将 def list() 添加到模型 View 集时,Django rest 框架过滤器和搜索不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com