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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta