title: How do I extend the Django "login" form?
body: <p>So, right now I'm doing the basic login.  In urls.py, I go to django contrib login: </p>
  
  <pre><code>(r'^login/?$','django.contrib.auth.views.login',{'template_name':'login.html'}),
  </code></pre>
  
  <p>That shoots it to here:</p>
  
  <pre><code>@csrf_protect
  @never_cache
  def login(request, template_name='registration/login.html',
            redirect_field_name=REDIRECT_FIELD_NAME,
            authentication_form=AuthenticationForm):
  </code></pre>
  
  <p>That view uses the AuthenticationForm forms model:</p>
  
  <pre><code>class AuthenticationForm(forms.Form):
      """
      Base class for authenticating users. Extend this to get a form that accepts
      username/password logins.
      """
      username = forms.CharField(label=_("Username"), max_length=30)
      password = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
  </code></pre>
  
  <p>So...<strong>my objective is to to change the username form</strong>! By adding this to it: <code>widget = forms.TextInput(attrs={'placeholder': 'username'})</code>.  That's it.  That's all I want to add to the username input box.  But, I don't want to change the actual django forms.py file, since that's part of django contrib and I feel bad changing that file.</p>
  
  <p>What do I do?  Should I create a form that extends AuthenticationForm? If so, how do I import that? And how do I pass that in as an argument via my urls.py? I don't know what to do.</p>