我的班级:
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', )
字符串
我搜索了其他的堆栈溢出问题,它们对我没有帮助(here,here,here和here)。
我已经将'django-filter'(django-filter==1.0.4)添加到我的应用程序中,我的django版本是(Django==1.11.1)和rest(djangorestframework==3.8.2)
我真的不想添加一个filter_class。我有其他的视图与filterclass,它的工作,但我不想使这么多的filterclasses。这将是完美的,filterset_fields功能工作。如果没有,我将不得不创建一个函数的filter_class,所以我将不必创建30+他们。
2条答案
按热度按时间2nbm6dog1#
好吧,最后我发现了问题,感谢validname的回答。他建议使用“filter_fields”我进入django-filter文档,发现在新版本(1.1.0)中 filter_fields 被重命名为 filterset_fields,所以当我使用django-filter 1.0.4时,filterset_fields 不存在。
dfty9e192#
您使用DjangoFilterBackend的方式不正确,如果您已经在views.py中全局声明了DjangoFilterBackendsettings.py文件中声明DjangoFilterBackend
字符串
像这样使用DjangoFilterBackend
型