Ответ 1
Просто передайте его в конструктор и сохраните его как переменную экземпляра:
class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request")
super(MyForm, self).__init__(*args, **kwargs)
def clean(self):
print self.request.user
...
На ваш взгляд:
form = MyForm(..., request=request)
И если вы используете представление на основе класса (CreateView в этом примере):
class MyCreateView(CreateView):
...
def get_form_kwargs(self):
kwargs = super(MyCreateView, self).get_form_kwargs()
kwargs.update({'request': self.request})
return kwargs