形で使いたいforms.ModelMultipleChoiceField
。クエリセットが必要であることはわかっていますが、使用するクエリセットは、通常、request.user を使用してビューで渡す param ユーザーを使用します。ただし、これはフォームですが、request.user を渡すにはどうすればよいですか? する必要がありますか?
Entry.objects.filter(request.user)
形で使いたいforms.ModelMultipleChoiceField
。クエリセットが必要であることはわかっていますが、使用するクエリセットは、通常、request.user を使用してビューで渡す param ユーザーを使用します。ただし、これはフォームですが、request.user を渡すにはどうすればよいですか? する必要がありますか?
Entry.objects.filter(request.user)
フォームの init メソッドをオーバーライドする必要があります。
class MyForm(forms.ModelForm):
class Meta:
model = Entry
def __init__(self, user=None, *args, **kwargs):
super(MyForm, self).__init__(*args,**kwargs)
if user is not None:
form_choices = Entry.objects.filter(user)
else:
form_choices = Entry.objects.all()
self.fields['my_mfield'] = forms.ModelMultipleChoiceField(
queryset=form_choices
)
そしてあなたの見解では、フォームをインスタンス化する時が来ました:
form = MyForm(request.user)
また
form = MyForm()