模型:
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 会创建 appname_student_subjects。
appname_student_subjects 表看起来像这样:
id | student_id | subjects_id
-----------------------------------------
1 | 1 | 10
2 | 4 | 11
3 | 4 | 19
4 | 5 | 10
...
~1000
如何访问subjects_id 字段并计算上表中subjects_id 存在的次数(然后对其进行处理)。例如:如果 ID 为 10 的主题存在两次,则模板显示 2。我知道我应该在结果中使用“len”,但我不知道如何访问 subject_id 字段。使用外键,我在 for 循环中这样做:
results_all = Students.objects.filter(subject_id='10')
result = len(results_all)
我将结果传递给模板并在 for 循环中显示它,但它不是外键,所以它不起作用。