(ich Python neu bin und django so wenden Sie sich bitte für eine Sekunde mit mir. Ich entschuldige mich, wenn dies an anderer Stelle beantwortet worden ist, und es nicht finden konnte)Wie kann ich mit der App "django" und "django-voting" ein Suchfeld nach den Voten jedes Elements bestellen?
Lassen Sie uns sagen, dass ich ein Link-Modell haben und durch die django -Voting-Anwendung Benutzer können über Link-Instanzen abstimmen. Wie kann ich diese Link-Instanzen nach ihrer Punktzahl, z. zeige die mit der höheren Punktzahl zuerst an.
Ich nehme an, ich könnte den get_top Manager von django-voting verwenden, aber das würde mir nur die Linkinstanzen mit der höchsten Bewertung geben und andere Parameter, die ich hinzufügen möchte, nicht berücksichtigen (zum Beispiel die Links, die dazugehören) zu einem bestimmten Benutzer oder Paging oder was auch immer).
Meine Vermutung wäre, einen benutzerdefinierten Manager für mein Link-Modell zu schreiben, wo von mir eine queryset nach jedem Einzelteil Punktzahl filtere. Wenn ich richtig verstehe, dass ich jedes Element durchlaufen muss, überprüfe das Ergebnis und lege es dann in eine Liste (oder ein Wörterbuch), die dann nach der Punktzahl jedes Elements sortiert werden. Das würde kein Abfrage-Set zurückgeben, sondern ein Wörterbuch mit jedem Element.
Fehle ich hier etwas?
edit:
Hier ist eine abgespeckte Version des Link-Modell:
class Link(models.Model):
user = models.ForeignKey('auth.User')
category = models.ForeignKey(Category)
date = models.DateTimeField(auto_now_add=True, null=True, blank=True)
is_deleted = models.BooleanField(default=False, blank=True)
links = ValidLinkManager()
objects = models.Manager()
und wenn ein Benutzer Stimmen Ich habe dies in meiner Sicht:
Vote.objects.record_vote(link, user, vote)
wo Link ist Die Link-Instanz user ist eine Instanz von auth.User und vote ist entweder 1, 0 oder -1. Der ValidLinkManager filtert nur die Links heraus, bei denen is_deleted auf True gesetzt ist.
Können Sie einige Code schreiben, möglicherweise, was Ihr Link-Modell sieht aus wie ...? – kafuchau
in Ordnung ist es hier .. –
Ich bin mir nicht ganz sicher, was Sie versuchen, hier zu tun. Versuchen Sie nur, die Anzeige der Stimmen anzuordnen? – Brant