我正在为我的应用程序创建一个过滤系统,我想渲染 <select>
字段,预先填充可能的选项。
假设我有一个名为 Exam
的模型与 Student
有关系这与StudentProfile
有关- 我正在过滤Exam
按字段划分的对象 has_scholarship
在学生的个人资料中,因此我正在创建一个查询,例如: student__student_profile_has_scholarship
并将其传递给 django 的 filter() 函数并且它可以工作。
但是现在,我想使用所有可能的 <option>
来渲染 html 表单s,为此我需要找到提到的可能选项。 如何从上述查询字符串中找到所有对象,以获取 student__student_profile
的所有对象来 self 的Exam
模型?无论关系链有多长,假设关系都是正确的,这也必须起作用。
最佳答案
我假设有模型:
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)
如果是:从考试
获取所有学生或个人资料:
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)>]>
关于python - 如何选择与我的模型相关的模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56901214/