【发布时间】:2021-08-12 11:08:59
【问题描述】:
我需要在我的网络应用中处理诸如成绩查看之类的事情,例如,我的模型如下所示:
class Subjects(models.Model):
subject = models.CharField(max_length= 255)
class Student(models.Model):
student = models.Foreignkey(Student,related_name="student", on_delete=models.CASCADE)
enrolled_subjects = models.ManyToManyField(Subjects)
class StudentGrade(models.Model):
student = models.Foreignkey(Student,related_name="student", on_delete=models.CASCADE)
subject = models.ForeignKey(?)
grade = ...
period = models.ForeignKey(SchoolPeriod)
如何访问Student Grades 模型中Student 对象的enrolled_subjects?
我应该做类似的事情吗:(我不确定我是否可以在 models.py 中做类似的事情)
class StudentGrade(models.Model):
ENROLLED_SUBJECTS_CHOICES = Student.objects.filter(//some filter here)
student = models.Foreignkey(Student,related_name="student", on_delete=models.CASCADE)
subject = models.ChoiceField(choices= ENROLLED_SUBJECTS_CHOICES, default= None,)
grade = ...
period = models.ForeignKey(SchoolPeriod)
【问题讨论】:
-
我建议
StudenGrade是多对多字段的“直通”模型。如果您将grade设置为可为空的字段,那么您最初可以将其设置为null,直到该科目被评分。 -
对不起,我没听懂,什么意思? @WillemVanOnsem