DRF поиск без учета регистра

Реализую фильтрацию, сортировку и поиск при помощи djang-filters. Ситуация в том, что поиск он проводит строго по регистру, то есть ?search=test не подойтет к "Test". Как можно исправить это?

from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.generics import ListAPIView
from rest_framework import filters


class PizzaAPIView(ListAPIView):
    queryset = PizzaModel.objects.all()
    filter_backends = [DjangoFilterBackend, filters.OrderingFilter, filters.SearchFilter]
    filterset_fields = ['id', 'title', 'price', 'category', 'rating']
    ordering_fields = ['id', 'title', 'price', 'category', 'rating']
    search_fields = ['title']
    serializer_class = PizzaSerializer

Добавил функцию get_queryset для проверки регистра в поиске. Следовательно от прошлого варианта поиска можно отказаться.

class PizzaAPIView(ListAPIView):
    queryset = PizzaModel.objects.all()
    filter_backends = [DjangoFilterBackend, filters.OrderingFilter]
    filterset_fields = ['id', 'title', 'price', 'category', 'rating']
    ordering_fields = ['id', 'title', 'price', 'category', 'rating']
    serializer_class = PizzaSerializer

    def get_queryset(self):
        search_query = self.request.query_params.get('search')
        queryset = PizzaModel.objects.all()
        if search_query:
            queryset = queryset.filter(title__iregex=search_query)

        return queryset
Вернуться на верх