Entonces, ahora estoy haciendo el inicio de sesión básico. En urls.py, voy a django contrib entrada:¿Cómo extiendo el formulario de "inicio de sesión" de Django?
(r'^login/?$','django.contrib.auth.views.login',{'template_name':'login.html'}),
que dispara a aquí:
@csrf_protect
@never_cache
def login(request, template_name='registration/login.html',
redirect_field_name=REDIRECT_FIELD_NAME,
authentication_form=AuthenticationForm):
Ese punto de vista utiliza el modelo de formas 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)
Así que .. .mi objetivo es cambiar el formulario de nombre de usuario! Agregando esto a él: widget = forms.TextInput(attrs={'placeholder': 'username'})
. Eso es. Eso es todo lo que quiero agregar al cuadro de entrada de nombre de usuario. Pero no quiero cambiar el archivo real django forms.py, ya que eso es parte de django contrib y me siento mal al cambiar ese archivo.
¿Qué debo hacer? ¿Debo crear un formulario que amplíe AuthenticationForm? Si es así, ¿cómo lo importo? ¿Y cómo paso eso como argumento a través de mi urls.py? No se que hacer.
Gracias por la puntero a crujiente! – rikb