如何选择与我的模型相关的模型对象

2024-05-16 22:21:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的应用程序创建一个过滤系统,我想呈现<select>字段,预先填充可能的选项

假设我有一个名为Exam的模型,它与Student有关系,这与StudentProfile有关系-我正在通过student的profile中的has_scholarship字段过滤Exam对象,所以我正在创建一个查询,例如:student__student_profile_has_scholarship,并将其传递给django的filter()函数,它就可以工作了

不过,现在我想用<option>和所有可能的<option>呈现html表单,为此我需要找到上面提到的可能选项如何从上述查询字符串中查找所有对象,以从我的Exam模型中获取student__student_profile的所有对象?无论关系链有多长,只要关系都是正确的,这也必须起作用


Tags: 对象模型应用程序关系系统选项profileselect
1条回答
网友
1楼 · 发布于 2024-05-16 22:21:16

我假设有一些模型:

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)>]>

相关问题 更多 >