Como extendo o formulário de "login" do Django?

Então, agora eu estou fazendo o login básico. Em urls.py, eu vou ao django contrib login:

(r'^login/?

Isso dispara para aqui:

@csrf_protect
@never_cache
def login(request, template_name='registration/login.html',
          redirect_field_name=REDIRECT_FIELD_NAME,
          authentication_form=AuthenticationForm):

Essa visualização usa o modelo de formulários AuthenticationForm:

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)

Assim...meu objetivo é alterar o formulário de nome de usuário! Adicionando isso a ele:widget = forms.TextInput(attrs={'placeholder': 'username'}). É isso aí. É tudo o que quero adicionar à caixa de entrada de nome de usuário. Mas não quero alterar o arquivo django forms.py, já que isso faz parte do django contrib e me sinto mal mudando esse arquivo.

O que eu faço? Devo criar um formulário que estenda o AuthenticationForm? Se sim, como eu importo isso? E como passo isso como argumento através dos meus urls.py? Não sei o que fazer

,'django.contrib.auth.views.login',{'template_name':'login.html'}),

Isso dispara para aqui:

@csrf_protect
@never_cache
def login(request, template_name='registration/login.html',
          redirect_field_name=REDIRECT_FIELD_NAME,
          authentication_form=AuthenticationForm):

Essa visualização usa o modelo de formulários AuthenticationForm:

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)

Assim...meu objetivo é alterar o formulário de nome de usuário! Adicionando isso a ele:widget = forms.TextInput(attrs={'placeholder': 'username'}). É isso aí. É tudo o que quero adicionar à caixa de entrada de nome de usuário. Mas não quero alterar o arquivo django forms.py, já que isso faz parte do django contrib e me sinto mal mudando esse arquivo.

O que eu faço? Devo criar um formulário que estenda o AuthenticationForm? Se sim, como eu importo isso? E como passo isso como argumento através dos meus urls.py? Não sei o que fazer

questionAnswers(3)

yourAnswerToTheQuestion