486 Stimmen

django order_by Abfragesatz, aufsteigend und absteigend

Wie kann ich durch absteigend meine Abfrage in Django nach Datum gesetzt bestellen?

Reserved.objects.all().filter(client=client_id).order_by('check_in')

Ich möchte einfach alle Reservierten absteigend nach dem Eincheckdatum filtern.

888voto

Keith Punkte 8878
Reserved.objects.filter(client=client_id).order_by('-check_in')

Beachten Sie die - vor check_in .

Django-Dokumentation

89voto

Leonardo.Z Punkte 8867
Reserved.objects.filter(client=client_id).order_by('-check_in')

Ein Bindestrich "-" vor "check_in" bedeutet absteigende Reihenfolge. Aufsteigende Reihenfolge ist implizit.

Wir müssen kein all() vor filter() einfügen. Das würde immer noch funktionieren, aber Sie müssen nur all() hinzufügen, wenn Sie alle Objekte aus dem Root QuerySet haben wollen.

Mehr dazu hier: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters

45voto

Thomas Turner Punkte 2262

Wenn Sie das - hinzufügen, werden sie in absteigender Reihenfolge angeordnet. Sie können dies auch festlegen, indem Sie eine Standardreihenfolge in die Meta-Angaben Ihres Modells aufnehmen. Dies bedeutet, dass Sie bei einer Abfrage einfach MyModel.objects.all() und es wird in der richtigen Reihenfolge erscheinen.

class MyModel(models.Model):

    check_in = models.DateField()

    class Meta:
        ordering = ('-check_in',)

31voto

Patrick Punkte 1061

Sie können auch die folgende Anweisung verwenden:

Reserved.objects.filter(client=client_id).order_by('check_in').reverse()

20voto

anjaneyulubatta505 Punkte 8833

Für aufsteigende Reihenfolge:

Reserved.objects.filter(client=client_id).order_by('check_in')

für absteigende Reihenfolge:

1.  Reserved.objects.filter(client=client_id).order_by('-check_in')

ou

2.  Reserved.objects.filter(client=client_id).order_by('check_in')[::-1]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X