Django: Accessing request in forms.py clean function Django: Accessing request in forms.py clean function django django

Django: Accessing request in forms.py clean function


You can overwrite the FormMixin's get_form_kwargs method to add the request for to the form's init parameters:

class ItemCreate(FormView):     def get_form_kwargs(self):         kwargs = super(ItemCreate, self).get_form_kwargs()         kwargs.update({             'request' : self.request         })         return kwargs


Overriding the form.get_initial() works for me

class ItemCreate(FormView):    def get_initial(self):        init = super(ItemCreate, self).get_initial()        init.update({'request':self.request})        return init

And in the clean we can access it with form.initial dict

class sampleForm(forms.Form):    ...    ...    def clean(self):    user_request = self.initial['request']

By the way, we don't need to pop the extra args like suggested above.