E 'possibile fare case-insensitive
ordinando per first_name
con Django-rest-framework.Do order-insensitive order with django-filter
Ecco il codice:
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
C'è un modo semplice per farlo case-insensitive
ordinazione con django-filter
?
Here django-filtro ha docs per case-insensitive ricerca, ma nulla per ordinare.
Nei documenti Django, il codice è in qualche modo ottuso per questo, il che mi fa pensare se esiste per django-filter
oppure no. Ecco il codice docs Django frammento su come farlo con il Django ORM:
>>> from django.db.models.functions import Lower
>>> MyModel.objects.order_by(Lower('myfield'))
'ordering_fields', ecc ... funziona per l'ordine, ma * non fa distinzione tra maiuscole e minuscole *. Django ORM è 'case-sensitive' di default, e l'argomento' ordering_fields' sopra usa la funzionalità predefinita di Django ORM per 'model.objects.order_by'. –