gpt4 book ai didi

django访问许多创建的原始表字段

转载 作者:行者123 更新时间:2023-12-04 05:25:07 24 4
gpt4 key购买 nike

型号:

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

我该如何访问subject_id字段并计算主题表在上表中存在的次数(然后对其进行处理)。例如:如果ID为10的主题存在两次,则模板显示2。我知道应该在结果中使用“len”,但我不知道如何访问subject_id字段。
使用外键,我在for循环中这样做:
results_all = Students.objects.filter(subject_id='10')
result = len(results_all)

我将结果传递给模板并在for循环中显示,但它不是外键,因此无法正常工作。

最佳答案

您可以直接访问通过表。

num = (Students.subjects  # M2M Manager
.through # subjects_students through table
.objects # through table manager
.filter(student_id=10) # your query against through table
.count())

关于django访问许多创建的原始表字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14306427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com