【问题标题】:filterset_fields with DjangoFilterBackend not working带有 DjangoFilterBackend 的 filterset_fields 不起作用
【发布时间】:2019-02-03 23:01:22
【问题描述】:

我的班级:

class InvoicePeriodViewSet(viewsets.ModelViewSet):
    permission_classes = (
        permissions.AllowAny,
    )
    queryset = models.InvoicePeriod.objects.all()
    serializer_class = serializers.InvoicePeriodSerializer
    filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
    filterset_fields = ('days_interval', )

它根本不工作。我搜索了其他堆栈溢出问题,但它们没有帮助我(herehereherehere)。

我的应用中添加了“django-filter”(django-filter==1.0.4),我的 django 版本是 (Django==1.11.1),其余版本是 (djangorestframework==3.8.2)

我真的不想添加 filter_class。我对过滤器类有其他看法,它正在工作,但我不想制作这么多过滤器类。 filterset_fields 功能可以正常工作就完美了。如果不是,我将不得不通过一个函数创建 filter_class,这样我就不必创建 30 多个。

【问题讨论】:

    标签: django django-filter


    【解决方案1】:

    好吧,感谢validname 的回答,我终于找到了问题所在。他建议使用“filter_fields” 我进入django-filter documentation 发现在新版本(1.1.0)中 filter_fields 被重命名为 filterset_fields ,所以当我使用 django-filter 1.0.4 时,filterset_fields 不存在。

    【讨论】:

    • 谢谢-我遇到了相反的问题-所有文档都说使用filterset_fields,但是我使用的是旧版本,我应该一直使用filter_fields
    猜你喜欢
    • 2017-11-07
    • 2021-09-05
    • 2014-12-10
    • 2011-09-30
    • 2013-01-06
    • 2016-03-17
    • 2018-01-09
    • 2015-11-03
    • 2015-11-18
    相关资源
    最近更新 更多