title: Django ModelForms __init__ kwargs create and update
body: <p>I'm trying to get the request.user into a ModelForm.  I feel like I've tried all permutations of this from overloading the</p>
  
  <pre><code>__init__ 
  </code></pre>
  
  <p>argument (per <a href="https://stackoverflow.com/questions/8994619/django-form-request-post-and-initial">Django form, request.post and initial</a>) to trying to pass it as a kwargs (per <a href="https://stackoverflow.com/questions/14322185/init-got-multiple-values-for-keyword-argument">Django form __init__() got multiple values for keyword argument</a>).  I</p>
  
  <p>It does seem like the kwargs is the best approach but I'm totally stymied by it.  </p>
  
  <p>Here's the ModelForm:</p>
  
  <pre><code>class DistListForm(ModelForm):
      members = ModelMultipleChoiceField(queryset=Company.objects.none())
      class Meta:
          model = DistList
          fields = ['name', 'description', 'members', 'is_private']
  
      def __init__(self, *args, **kwargs):
          super(DistListForm, self).__init__(*args, **kwargs)
          user = kwargs.pop('user', None)
          up = UserProfile.objects.get(user=user)
          /.. etc  ../
  </code></pre>
  
  <p>Here's how the create function currently works:</p>
  
  <pre><code>def distlistcreate(request):
      user = {'user': request.user}
      form = DistListForm(**user)
      if request.method ==  'POST':
          form = DistListForm(request.POST)
          if form.is_valid():
              distlist = form.save(commit=False)
              distlist.creator = request.user
              distlist.save()
              form.save_m2m()
  
              return HttpResponseRedirect(reverse('distlistsmy'))
      return render(request, 'distlistcreate.html',{'form':form})
  </code></pre>
  
  <p>which throws a TypeError: <strong>init</strong>() got an unexpected keyword argument 'user'.  The update method is equally unhelpful:</p>
  
  <pre><code>def distlistupdate(request, object_id):
      distlist = get_object_or_404(DistList, id=object_id)
      form = DistListForm(user=request.user, instance=distlist)
      if request.method ==  'POST':
          form = DistListForm(request.POST, user=request.user)
  </code></pre>
  
  <p>It also throws the same error.  </p>
  
  <p>I've been banging my head against this wall for two hours now.  What is the correct way to pass a keyword argument into a ModelForm?  </p>
  
  <p>This is Django 1.6.1 if that makes a difference.</p>