我有一个名为MyForm
的表格。我覆盖了__init__()
方法。
现在,在request.user
中创建此表单时,需要传递MyFormView
参数。
我想这样做:
class MyFormView(FormView):
form_class = MyForm(request.user)
我是否必须覆盖视图的__init__
方法?如果可以,怎么办?
答案 0 :(得分:4)
覆盖视图的get_form_kwargs
方法:
class MyFormView(FormView):
form_class = MyForm
def get_form_kwargs(self):
kwargs = super(MyFormView, self).get_form_kwargs()
kwargs['user'] = self.request.user
return kwargs
答案 1 :(得分:1)
def get_form_kwargs(self):
kwargs = super(MyFormView, self).get_form_kwargs()
data = kwargs['data'].copy() # convert it to a mutable
data['user'] = self.request.user
kwargs['data'] = data
return kwargs