Comment puis-je commander en descendant mon ensemble de requêtes dans django par date?
Reserved.objects.all().filter(client=client_id).order_by('check_in')
Je veux juste filtrer de décroissant tous les Réservé par date check_in.
Reserved.objects.filter(client=client_id).order_by('-check_in')
Remarquez l' -
avant check_in
.
-
avant le nom de la colonne signifie l'ordre décroissant sans-
moyenne croissante.Un tiret "-" devant "check_in" indique l'ordre décroissant. L'ordre croissant est implicite.
Nous n'avons pas besoin d'ajouter un all () avant filter (). Cela fonctionnerait toujours, mais vous n'avez besoin d'ajouter all () que lorsque vous voulez tous les objets du QuerySet racine.
Plus d'informations à ce sujet ici: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters
la source
Vous pouvez également utiliser l'instruction suivante:
la source
.all().filter()
n'est pas nécessaire..filter()
seul est bien.pour ordre croissant:
pour l'ordre décroissant:
ou
la source
Cela fonctionne en supprimant
.all()
:la source
L'ajout de - le classera par ordre décroissant. Vous pouvez également définir cela en ajoutant un ordre par défaut à la méta de votre modèle. Cela signifie que lorsque vous effectuez une requête, vous ne faites que MyModel.objects.all () et il apparaîtra dans le bon ordre.
la source
Ordre croissant
Ordre décroissant
-
(trait d'union) est utilisé pour indiquer l'ordre décroissant ici.la source
Cela fonctionne pour moi.
la source
67
Reserved.objects.filter (client = id_client) .order_by ('- check_in')
'-' est indique l'ordre décroissant et pour l'ordre croissant donnez simplement l'attribut class
la source