Ist es möglich, case-insensitive
zu bestellen, indem Sie first_name
mit Django-rest-framework. HierIst die Groß- und Kleinschreibung nicht zu beachten?
ist der Code:
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
Gibt es eine einfache Möglichkeit, case-insensitive
Bestellung mit django-filter
zu tun?
Here django-Filter hat docs für Groß- und Kleinschreibung Suche, aber nichts für Bestellung.
In den Django-Dokumenten ist der Code dafür etwas stumpf, was mich fragt, ob er für django-filter
existiert oder nicht. Hier ist die Django docs Code-Schnipsel, wie es mit dem Django ORM zu tun:
>>> from django.db.models.functions import Lower
>>> MyModel.objects.order_by(Lower('myfield'))
'ordering_fields', etc ... funktioniert für die Bestellung, aber es ist * nicht case-insensitive *. Das Django-ORM ist standardmäßig "case-sensitive", und das obige 'ordering_fields'-Argument verwendet die Standard-Django-ORM-Funktionalität für' model.objects.order_by'. –