求助:如何在ModelForm中根据其他字段来确定另一个字段的选值范围?

各位好: 我现在有个需求,就是要通过一个字段确定另一个字段的取值范围。比如说,模型Work中dep表示所属部门,要从该部门中选择一个执行人people。但是dep是不会变化的。因此,创建Work的时候,只需要选择Work的名称和所属dep就可以了,然后还为Work指定了一个默认执行人people。

Work(models.Model):
    dep = models.ForeignKey(Dep,on_delete=models.CASCADE,verbose_name="部门")
        people = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name="默认执行人")

        def possibleP(self):
            return User.objects.filter(dep=self.dep)

然后到实际指派任务的时候,就是另外一个模型WorkReal了,它需要根据Work所在部门,实际指派一个people,有时候就不是Work中默认的people了,另外,还得加一堆比如说,需要的时间,到期日之类的东西。

WorkReal(models.Model):
     w = modelsForeignKey(Work, on_delete=models.CASCADE,verbose_name="任务名")
         people=models.ForeignKey(User,on_delete=models.CASCADE,verbose_name="执行人")
         time = models.IntegerField(verbose_name="工时")
         duedate = models.DateField(auto_now_add=True,verbose_name="到期日")

         def possibleP(self):
              return self.m.possibleP()

那么,我该怎么用ModelForm来写WorkReal对应的表单呢?尤其是people部分,希望能从w中直接获取下拉框中可选择的people项。

评论 1