Фильтр Django нечувствителен к регистру

Я написал этот набор представлений Django, который позволяет пользователям фильтровать и запрашивать данные

from django_filters import rest_framework as filters
from rest_framework import viewsets

from API.models import Record
from API.serializers import RecordSerializer


 class    CountViewSet(viewsets.ReadOnlyModelViewSet):
    """List of all traffic count Counts"""
queryset = Record.objects.all().select_related("count")
serializer_class = RecordSerializer
filter_backends = (filters.DjangoFilterBackend,)
filterset_fields = (
    "road",
    "date",
    "count_method",
    "count_method__basic_count_method",
    "count_method__detailed_count_method",
    "location",
    "road__direction",
    "road__category",
    "road__junc_start",
    "road__junc_end",
    "road__road__name",
    "date__year",
    "location__count_point_ref",
    "road__category__name",
    "road__junc_start__name",
    "road__junc_end__name",
    "road__direction__name",
)

И я хотел бы сделать его нечувствительным к регистру и разрешить поиск, содержащий частично строку, чтобы пользователь мог запрашивать, не зная правильного "названия дороги", например:

curl -X GET /count/?road__category__name=TA" -H "accept: application/json

".

Вы можете попробовать road__category__name__icontains если это не сработает, вы должны объявить это как метод в классе пользовательского фильтра, i письмо для нечувствительного к регистру, Ссылка на документацию : Django icontains Doc.

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