我正在为我的应用程序创建一个过滤系统,我想呈现<select>
字段,这些字段预先填充了可能的选项。
让我们假设我有一个名为Exam
的模型,它与Student
有关系,并且与StudentProfile
有关系-我正在按字段{{1 }}在学生的个人资料中,因此我正在创建一个查询,例如:Exam
并将其传递给django的filter()函数,它可以正常工作。
但是,现在,我想使用所有可能的has_scholarship
呈现html表单,为此,我需要找到上述可能的选项。 如何从上述查询字符串中找到所有对象,以从我的student__student_profile_has_scholarship
模型中获取<option>
的所有对象?无论关系链假设关系都是正确的。
答案 0 :(得分:0)
我认为有模型:
class Exam(models.Model):
example = models.CharField(max_length=255, default="")
class Stydent(models.Model):
exam = models.ManyToManyField(Exam, related_name="students")
class StydentProfile(models.Model):
stud = models.ForeignKey(Stydent, related_name="profiles",
on_delete=models.SET_NULL, default=None, null=True)
如果是这样:从exam
获取所有学生或个人资料:
In [27]: exam
Out[26]: <Exam: Exam object (1)>
In [27]: exam.students.all()
Out[28]: <QuerySet [<Stydent: Stydent object (1)>]>
In [29]: exam.students.model.objects.all()
Out[29]: <QuerySet [<Stydent: Stydent object (1)>, <Stydent: Stydent object (2)>]>
In [30]: exam.students.model.profiles.field.model.objects.all()
Out[30]: <QuerySet [<StydentProfile: StydentProfile object (2)>, <StydentProfile: StydentProfile object (1)>]>