Можно ли сделать case-insensitive
заказать по first_name
с Django-rest-framework.Нечувствительный к регистру заказ с django-фильтром
Вот код:
import django_filter
class PersonFilter(django_filters.FilterSet):
class Meta:
model = Person
fields = ('first_name_lower',)
order_by = ('first_name_lower',)
class PersonViewSet(BaseModelViewSet):
queryset = Person.objects.all()
permission_classes = (permissions.IsAuthenticated,)
filter_backends = (filters.DjangoFilterBackend,)
filter_class = PersonFilter
Есть простой способ сделать case-insensitive
заказ с django-filter
?
Here Джанго-фильтр имеет документы для учета регистра поиска, но ничего для заказа.
В документах Django код несколько тупой для этого, что заставляет меня задаться вопросом, существует ли он для django-filter
или нет. Вот Django документы фрагмент кода о том, как это сделать с Django ORM:
>>> from django.db.models.functions import Lower
>>> MyModel.objects.order_by(Lower('myfield'))
'ordering_fields', etc ... работает для заказа, но это * не учитывает регистр *. Django ORM по умолчанию чувствителен к регистру, а аргумент 'ordering_fields' выше использует функциональность Django ORM по умолчанию для' model.objects.order_by'. –