2017-01-22 3 views
1

Ich habe einige Django-Modell, wie kann ich order_by Daten aus Tabelle abhängig von Feld Wert. Für z.B. Wenn das Feld mit dem Namen "status" den Wert "10" hat, führen Sie ASC aus, wenn der Wert des Status gleich "20" ist. Mache es in einer einzigen Abfrage. Ich bin das erste Mal hier, tut mir leid, wenn ich etwas falsches gesagt habe. Vielen Dank.Mehrere order_by in Django mit Bedingungen

+0

Willkommen bei Stack-Überlauf! Bitte lesen Sie unsere [SO Fragen-Checkliste] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), um Ihnen zu helfen, eine gute Frage zu stellen und somit eine gute Antwort zu erhalten. –

Antwort

1

Sie können conditions in Ihrem order_by wie folgt verwenden:

from django.db.models import Case, When 

Model.objects.order_by(Case(When(status='10', then='some_field')), Case(When(status='20', then='some_field')).desc()) 
+0

Vielen Dank, genau das, was ich brauche! –