Frage

Hier ist ein interessantes Problem, ich habe eine Liste von Benutzern, die ich in der Reihenfolge der Bewertung aufliste, und bei der zwei Benutzer die gleiche Bewertung haben, habe ich eine Zufallszahl, mit der ich sicherstellen kann, dass die Liste nicht immer gleich ist.

Derzeit mache ich dies, indem ich eine Abfrage ausführe:

   select app_model1.column1, app_model1.colum2, app_model2.column3 
   from app_model1 left join app_model2 
   order by colum1, random();

Aber es fiel mir auf, als ich eine große Django -App in mehrere kleinere Geräte umgestaltete, die den Namen der Tabelle in diese SQL kodiert hatte (und es brach meine Einheitstests) und ich sollte das native Orm wirklich verwenden, um dies zu erreichen.

Wie kann ich das gleiche Ergebnis erzielen, aber stattdessen mit Django.contrib.auth.user und einem Profilmodell?

War es hilfreich?

Lösung

Entsprechend die Dokumentation Sie können ein Special verwenden "? Feldname:

    class Meta:
        ordering = ('colum1', '?')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top