I'm following the answer from this question, but the request object isn't actually being passed into it: How do I access the request object or any other variable in a form's clean() method? I'm getting this error when I try to submit the form: 'NoneType' object has no attribute 'user'
Here is my form code:
class MyModelForm(ModelForm):
    class Meta:
        model = MyModel
        fields=['question',]
    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop('request', None)
        super(MyModelForm, self).__init__(*args, **kwargs)
    def clean(self, *args, **kwargs):
        data = self.cleaned_data['question']
        user = self.request.user
        if user.author.number_of_questions < 1:
             raise ValidationError("You don't have any questions left")
        return data
Here is my CreateView:
class MyModelCreate(generic.CreateView):
    model = MyModel
    fields=['question',]
    def form_valid(self, form):
        # Code
        return super(MyModelCreate, self).form_valid(form)
    def get_success_url(self, **kwargs):
        # obj = form.instance or self.object
        return reverse_lazy('articles:thank-you')
    def get_form_kwargs(self):
        kw = super(MyModelCreate, self).get_form_kwargs()
        kw['request'] = self.request # the trick!
        return kw
    def get_context_data(self, **kwargs):
        #Code
        return context
It's my understanding that the get_form_kwargs method in the CreateView is passing in self.request into the request kwarg of the form, which is then being accessed in the clean method of MyModelForm, but when I run this code, I get the error: 'NoneType' object has no attribute 'user'
I have no idea why the request object isn't getting passed to the form.
 
    