【发布时间】:2017-03-18 00:14:15
【问题描述】:
我正在使用 DRF(Django Rest 框架)。
我声明了一个 ModelViewSet,现在我想在上面添加过滤器。
class GoodsViewSet(viewsets.ModelViewSet):
class Filter(FilterSet):
class Meta:
model = m.Goods
filter_class = Filter
filter_backends = (SearchFilter, Filter)
search_fields = ['name',]
queryset = m.Goods.objects.all()
serializer_class = s.GoodsSerializer
看到我声明了一个 Filter 子类并应用它:
filter_class = Filter
在我添加行之前,它在一开始就起作用了:
filter_backends = (SearchFilter, Filter)
search_fields = ['name',]
the doc 说的。
现在应用了搜索过滤器,而普通的filter_class 被跳过了。
一句话,他们不能一起工作。
如何解决这个问题?
【问题讨论】:
-
将您的 filter_class 重命名为其他类名?前任。 filter_class= My_Custom_Filter
-
@soupboy 谢谢,不是那个问题。我已经制定了解决方案并作为答案发布。我只想在这里发布答案。
-
@AlfredHuang 你有关于这个问题的博客吗?我想看到完整的实施。我仍然很难弄清楚。你的解决方案很有趣。
标签: python django rest filter django-rest-framework