2016-11-01 3 views
0

Ich versuche, eine Abfrage order_by, aber ich kann es nicht zu tun scheint, wäre jede HilfeAbfrage reagiert nicht auf order_by

users = User.objects.filter(Q(groups__name=group)).distinct() 

Dies erkannt werden, die Start Abfrage Ich habe viele Möglichkeiten versucht, diese Arbeit zu machen mit der Methode order_by. Aber es scheint nicht zu funktionieren, ich versuche die Abfrage nach dem ersten Namen in absteigender Reihenfolge zu sortieren.

.order_by('-first_name'.desc()) 

So ähnlich?

Ich erhalte eine Fehlermeldung ‚str‘ Objekt hat kein Attribut ‚desc‘

habe ich versucht, dies zu sehen, aber nicht sehen können es im Zusammenhang hergestellt wird, dass ich es so verwende ich auf die Antworten beziehen sich kippe

- Bearbeiten -

ich einige Fortschritte gehabt haben, Namen Orte ändern sich, aber ich kann ein Muster zu passen scheinen, so dass ich denke, dass (Q (groups__name = Gruppe)) von der Ursache sein könnte es aber ich habe keine Ahnung was das eigentlich macht, kann mir das jemand erklären?

dank
+0

Warum haben Sie das 'desc()' hinzugefügt? Du hast schon das '-'. –

+0

@DanielRoseman Da keiner von beiden funktioniert –

+0

Um Ihre Bearbeitung zu beenden, brauchen Sie das 'Q()' nicht, wenn Sie nur einen Filter machen. 'Q()' -Ausdrücke sind für die Verwendung mehrerer Filter gedacht und benötigen ein 'or' oder' and' Feature. Sie können das also entfernen. Andernfalls sucht Ihr Filter nach dem 'Groups'-Modell und passt das' name'-Feld speziell an die 'group'-Variable an, die Sie in dieser Abfrage übergeben. Ist das sinnvoll? – jape

Antwort

1

Verwendung

.order_by('-first_name') 

statt

.order_by('-first_name'.desc()) 

- steht für descending bereits. andernfalls versuchen Sie, eine Methode für eine Zeichenfolge anstelle des Objekts QuerySet aufzurufen

+0

Danke, dass du das geklärt hast, aber leider funktioniert es immer noch nicht für mich. Könnte das etwas damit zu tun haben (Q (groups__name = group)) diesen Abschnitt von codE? –