Я использую DRF (Django Rest Framework).Как использовать обычный фильтр вместе с SearchFilter на Django Rest Framework?
Я объявил 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_class = Filter
Он работал в начале, прежде чем я добавить строки:
filter_backends = (SearchFilter, Filter)
search_fields = ['name',]
Что было сказано the doc.
И теперь фильтр поиска применяется, когда нормальный filter_class
пропущен.
Одно слово, они не могут работать вместе.
Как обойти это?
переименуйте свой filter_class в другое имя класса? ех. filter_class = My_Custom_Filter – Kishan
@soupboy спасибо, не то, что проблема. Я разработал решение и разместил его как ответ. Я просто хочу опубликовать ответ здесь. –
@AlfredHuang У вас есть блог по этой проблеме? Я хочу увидеть полную реализацию. Мне все еще трудно понять. Ваше решение интересно. – Sarit