首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >filter_fields在django restframework中不起作用

filter_fields在django restframework中不起作用
EN

Stack Overflow用户
提问于 2021-11-08 12:45:32
回答 1查看 19关注 0票数 0

views.py

代码语言:javascript
运行
复制
class BannerViewSet(ResponseViewMixin, viewsets.ModelViewSet):
    serializer_class = BannerSerializers
    queryset = Banner.objects.all()
    filter_backends = (filters.SearchFilter, filters.OrderingFilter)
    search_fields = ('title', 'sort_order', 'type')
    filter_fields = ('type',)

    def list(self, request, **kwargs):
        try:
            queryset = self.get_queryset()
            queryset = self.filter_queryset(queryset)
            serializer = BannerSerializers(queryset, many=True)
            response_data = {'Banner': serializer.data}
            return self.jp_response(s_code='HTTP_200_OK', data=response_data)
        except Exception as e:
            print(e)
            return self.jp_error_response('HTTP_500_INTERNAL_SERVER_ERROR', 'EXCEPTION', [str(e), ])

在这里,我想使用"type“字段过滤横幅列表。但是filter_fields没有正常工作,它在表格中给出了整个列表。给出解决这个问题的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-08 12:58:07

您应该使用django-filter包来实现视图集所需的行为。你可以像这样使用它:

代码语言:javascript
运行
复制
from django_filters.rest_framework import DjangoFilterBackend

class BannerViewSet(ResponseViewMixin, viewsets.ModelViewSet):
    serializer_class = BannerSerializers
    queryset = Banner.objects.all()
    filter_backends = (filters.SearchFilter, filters.OrderingFilter, DjangoFilterBackend)
    search_fields = ('title', 'sort_order', 'type')
    filterset_fields = ('type',)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69883653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档