我想forms.ModelMultipleChoiceField
在表格中使用。我知道它需要一个查询集,但是我将使用的查询集采用我通常使用 request.user 在视图中传递的参数用户。但是这是一种形式,我如何传递 request.user?我需要吗?
Entry.objects.filter(request.user)
我想forms.ModelMultipleChoiceField
在表格中使用。我知道它需要一个查询集,但是我将使用的查询集采用我通常使用 request.user 在视图中传递的参数用户。但是这是一种形式,我如何传递 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()