Django在视图中链接多个查询

问题描述 投票:0回答:2

我有三个型号:

  • 课程
  • 分配
  • 术语

course有一个ManyToManyField,可以在名为student的字段中访问Django的默认用户,并使用term访问ForeignKey

一个qazxsw poi有一个外键与qazxsw poi

这是相关的模型:

assignment

当用户登录页面时,我想向他们展示类似course的内容,我可以在其中显示每个学期以及学生注册的相应课程。

我可以访问学生注册的所有课程,我只是难以找出查询来选择条款。虽然我可能使用不正确,但我尝试使用'select_related'没有运气。到目前为止,我有class Assignment(models.Model): title = models.CharField(max_length=128, unique=True) points = models.IntegerField(default=0, blank=True) description = models.TextField(blank=True) date_due = models.DateField(blank=True) time_due = models.TimeField(blank=True) course = models.ForeignKey(Course) class Course(models.Model): subject = models.CharField(max_length=3) number = models.CharField(max_length=3) section = models.CharField(max_length=3) professor = models.ForeignKey("auth.User", limit_choices_to={'groups__name': "Faculty"}, related_name="faculty_profile") term = models.ForeignKey(Term) students = models.ManyToManyField("auth.User", limit_choices_to={'groups__name': "Student"}, related_name="student_profile") 。有没有办法获得所有的术语和相应的课程,以便我可以按照我喜欢的方式显示它们?如果没有,我应该以不同的方式建模我的数据库吗?

python django django-models django-queryset django-orm
2个回答
0
投票

bootstrap collapse card

您可以在这里使用course_list = Course.objects.filter(students = request.user).select_related('term')https://docs.djangoproject.com/en/1.11/ref/models/querysets/#values来获取相关模型values的字段。

例如,扩展您当前的请求:

在查询集中为values_lists检索所有Terms'Termname

duration

我不确定你的Course模型的字段是什么,但你会用你想要的任何一个替换Course.objects.filter(students = request.user).values('term__name', 'term__duration')Term


0
投票

我觉得它对你很有帮助

name
© www.soinside.com 2019 - 2024. All rights reserved.