Моя причина для всего этого заключается в том, что у меня нет пароля для сброса для работы в моем родном интерфейсе React, поэтому мне приходится использовать шаблоны Django для этой функции. Я хочу иметь возможность изменить его стиль и иметь ссылки, которые будут соответствовать моему приложению как можно ближе. Но этот метод, как правило, должен позволять вам создавать свою собственную версию формы авторизации Django.

сейчас я делаю основной логин. В urls.py я захожу в django contrib login:

(r'^login/?

Это стреляет это здесь:

@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, и я чувствую себя плохо, изменяя этот файл.

Что я делаю? Должен ли я создать форму, которая расширяет AuthenticationForm? Если да, то как мне это импортировать? И как мне передать это в качестве аргумента через мой urls.py? Я не знаю что делать

,'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, и я чувствую себя плохо, изменяя этот файл.

Что я делаю? Должен ли я создать форму, которая расширяет AuthenticationForm? Если да, то как мне это импортировать? И как мне передать это в качестве аргумента через мой urls.py? Я не знаю что делать

Ответы на вопрос(3)

Ваш ответ на вопрос