I have a form called MyForm
. I overrode the __init__()
method.
Now I need to pass the request.user
parameter when creating this form in MyFormView
.
I want to do this:
class MyFormView(FormView):
form_class = MyForm(request.user)
Do I have to override the __init__
method of my view? If so, how?
Override the view's get_form_kwargs
method:
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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With