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