Итак, сейчас я делаю основной вход. В urls.py, я перехожу к django contrib login:
(r'^login/?$','django.contrib.auth.views.login',{'template_name':'login.html'}),
Это стреляет сюда:
@csrf_protect
@never_cache
def login(request, template_name='registration/login.html',
redirect_field_name=REDIRECT_FIELD_NAME,
authentication_form=AuthenticationForm):
В этом представлении используется модель форм 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)
Итак... моя цель - изменить форму имени пользователя! Добавив к нему следующее: widget = forms.TextInput(attrs={'placeholder': 'username'})
. Это. Это все, что я хочу добавить в поле ввода имени пользователя. Но я не хочу изменять фактический файл django forms.py, так как эта часть django contrib и мне плохо меняет этот файл.
Что мне делать? Должен ли я создать форму, расширяющую AuthenticationForm? Если да, то как мне импортировать это? И как передать это в качестве аргумента через мой urls.py? Я не знаю, что делать.