django accediendo a muchos campos de tabla creados por muchos
Modelo:
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 crea appname_student_subjects cuando uso el modelo anterior.
La tabla appname_student_subjects busca, por ejemplo, esto:
id | student_id | subjects_id
-----------------------------------------
1 | 1 | 10
2 | 4 | 11
3 | 4 | 19
4 | 5 | 10
...
~1000
¿Cómo puedo acceder al campo subject_id y contar cuántas veces subject_id existe en la tabla anterior (y luego hacer algo con él)? Por ejemplo: si el sujeto con id 10 existe dos veces, la plantilla muestra 2. Sé que debo usar "len" con el resultado pero no sé cómo acceder al campo subject_id. Con claves foráneas lo hago así en un bucle for:
results_all = Students.objects.filter(subject_id='10')
result = len(results_all)
y paso el resultado a la plantilla y lo muestro dentro de un bucle for, pero no es una clave externa, por lo que no funciona.