我的模型是我有一个工作列表,每个工作只能由一部分用户(ManyToManyField)完成。然后人们可以提交工作请求,并将工作分配给可以完成工作的人中的某个人:
class Job(models.Model):
...
users = models.ManyToManyField(User)
class Job_Request(models.Model):
...
job = models.ForeignKey(Job)
assigned_to = models.ForeignKey(User)
然后我使用 ModelForm 创建了一个表单,允许人们编辑工作请求,将工作重新分配给其他人。我的问题是,ModelForm 为表单中的“assigned_to”字段创建了一个菜单,其中列出了我们所有的用户。我只希望它显示可以完成这项工作的用户子集。我怎样才能做到这一点?
下面是我的 forms.py,我尝试将 assignment_to 字段设置为可以完成这项工作的用户子集,但我不知道正确的语法。以下绝对是错误的,因为它创建了一个空菜单。我怎样才能做到这一点,无论是在表单中,还是在模板中?谢谢。
class EditJobRequestForm(ModelForm):
def __init__(self, *args, **kwargs):
super(EditJobRequestForm, self).__init__(*args, **kwargs)
self.fields['assigned_to'].queryset =
User.objects.filter(username__in=self.instance.job.users.all()]