私のモデルでは、ジョブのリストがあり、各ジョブはユーザーのサブセット (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です。ここで、assigned_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()]