2017-05-22 2 views
0

in vielen auf häufigste Vorkommen Filter filtern/my query-Satz ausschließen auf der Grundlage der am häufigsten Auftreten (Modus) meiner vielen vielen Feld, das ein Charfield ist:Django zu viele Feld wie ich würde

Für Beispiel In meinem Beispiel unten möchte ich unter den Klassen filtern, die Klassenräume mit Schülern enthalten, wobei "David" der gebräuchlichste Name in der Klasse ist. (Django Version 1.9.2)

#models.py 
class Student(models.Model): 
    name = models.CharField() 

class Class(models.Model): 
    name = models.CharField() 
    students = models.ManyToManyField(Student) 

#views.py 
Class.objects.filter(students__mode = 'David') 

Antwort

0

benötigen Sie django Aggregationen doc

Ihre Anfrage wird so etwas wie dieses (ich bin nicht sicher, es ist die genaue Abfrage oder nicht, aber die Dokumentation verwenden und diese Probe Sie wird die Idee bekommen, wie es funktioniert)

Class.objects.filter(
    students__name="David" 
).annotate(
    david_count=Count('students') 
).order_by(
    'david_count' 
) 
+0

Sollte "devid_count" "david_count" sein? – David

+0

@David Ja, es ist Tippfehler da :-)) – aliva

Verwandte Themen