django greift auf viele bis viele erstellte Tabellenfelder zu
Modell:
class Subjects (models.Model):
name = models.CharField(max_length=100)
places = models.CharField(max_length=100)
class Student (models.Model):
name = models.CharField(max_length=40)
lastname = models.CharField(max_length=80)
subjects = models.ManyToManyField(Subjects, blank=True)
Django erstellt appname_student_subjects, wenn ich das obige Modell verwende.
Die Tabelle appname_student_subjects sieht beispielsweise so aus:
id | student_id | subjects_id
-----------------------------------------
1 | 1 | 10
2 | 4 | 11
3 | 4 | 19
4 | 5 | 10
...
~1000
Wie kann ich auf das subject_id-Feld zugreifen und zählen, wie oft subject_id in der obigen Tabelle vorhanden ist (und dann etwas damit tun)? Beispiel: Wenn der Betreff mit der ID 10 zweimal vorhanden ist, wird in der Vorlage 2 angezeigt. Ich weiß, dass ich "len" mit dem Ergebnis verwenden sollte, aber ich weiß nicht, wie ich auf das Feld "subject_id" zugreifen soll. Mit Fremdschlüsseln mache ich das in einer for-Schleife so:
results_all = Students.objects.filter(subject_id='10')
result = len(results_all)
und ich übergebe das Ergebnis an die Vorlage und zeige es in einer for-Schleife an, aber es ist kein Fremdschlüssel, daher funktioniert es nicht.