Używam DRF (Django Rest Framework).Jak korzystać z normalnego filtru razem z funkcją SearchFilter w środowisku Django Rest Framework?
Ogłosiłem ModelViewSet, a teraz chcę dodać filtry na ten temat.
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
Widząc, że ogłoszony klasa filtra sub i stosować go z:
filter_class = Filter
To działało na początku, zanim dodam linie:
filter_backends = (SearchFilter, Filter)
search_fields = ['name',]
Który został poinformowany przez the doc.
A teraz filtr wyszukiwania jest stosowany, podczas gdy normalny filter_class
jest pomijany.
Jedno słowo, nie mogą ze sobą współpracować.
Jak obejść ten problem?
zmień nazwę swojej klasy filter_class na inną nazwę klasy? dawny. filter_class = My_Custom_Filter – Kishan
@soupboy dziękuję, nie ten problem. Opracowałem rozwiązanie i opublikowałem jako odpowiedź. Po prostu chcę opublikować odpowiedź tutaj. –
@AlfredHuang Czy masz bloga na ten temat? Chcę zobaczyć pełną implementację. Nadal trudno mi to rozgryźć. Twoje rozwiązanie jest interesujące. – Sarit