title: Attribute not being passed to modelform constructor when in modelformset_factory
body: <p>I have a form where I am trying to limit the choices which appear in the field 'question' (In this case, I only want questions which the user has created). This method has worked with other forms, but it doesn't work this time - probably because it is a ModelFormset rather than just a ModelForm</p>
  
  <p>The exact error is - <strong>'NoneType' object has no attribute 'username'</strong>, which I suspect means that the 'user' object is not being passed to AnswerForm's constructor. Problem is, I have no idea why it's not being passed</p>
  
  <pre><code>#views.py
  def add_answer(request):
          a_form = modelformset_factory(Answer, form=AnswerForm(user=request.user), fields='__all__', min_num=2, max_num=4, validate_min=True)
          if request.method == "POST":
              form = a_form(request.POST)
              if form.is_valid():
                  #Do something
          return render(request, 'site/addanswer.html', {'a_form': a_form})
  
  #forms.py
  class AnswerForm(forms.ModelForm):
  
      def __init__(self, *args, **kwargs):
          self.user = kwargs.pop('user', None)
          super(AnswerForm, self).__init__(*args, **kwargs)
          self.fields['question'] = forms.ModelChoiceField(queryset=Question.objects.filter(user__username=self.user.username))
  
      class Meta:
          model = Answer
          fields = ('question', 'answer', 'correct')
  
  #models.py
  class Question(models.Model):
      user = models.ManyToManyField(User)
      test = models.ForeignKey(Test, on_delete=models.CASCADE)
      question = models.TextField(max_length=1000)
  
      def __str__(self):
          return "{0}".format(self.question)
  
  class Answer(models.Model):
      question = models.ForeignKey(Question)
      answer = models.TextField(max_length=1000)
      correct = models.BooleanField()
  
      def __str__(self):
          return "{0}".format(self.answer)
  </code></pre>