Django Authentication Form Customize, Doubles Field
Цель - настроить форму, затем передать ее в LoginView. Я использую AuthenticationForm после ее настройки, но я вижу, что она повторяет лишний один вход, Я предполагаю, что это для имени пользователя, мне нужно только два входа, E-Mail и пароль. Посоветуйте что-нибудь.
Формы:
class AccountSignInForm(AuthenticationForm):
email = forms.EmailField(widget=forms.EmailInput(attrs={'placeholder': 'E-Mail..'}), label='E-Mail')
password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Password..'}), label='Password')
class Meta:
model = Account
fields = ['email', 'password']
Просмотров:
class AccountLoginView(LoginView):
template_name = 'accounts/login.html'
form_class = AccountSignInForm
success_url = 'HomePageView'
УРЛЫ:
app_name = 'accounts'
urlpatterns = [
path('sign-in', views.AccountLoginView.as_view(), name='login'),
]
HTML:
<h1>Login Form</h1>
<form method="POST">
{% csrf_token %}
{% for field in form %}
<div>{{ field.label }}</div>
<div>{{ field }}</div>
{% endfor %}
<input type="submit" value="Login" />
</form>
введите описание изображения здесь Любые идеи,.
Решено с помощью этого метода,
class ClientSignInForm(AuthenticationForm):
def __init__(self, *args, **kwargs):
super(ClientSignInForm, self).__init__(*args, **kwargs)
self.fields['username'].widget.attrs.update(
{'placeholder': 'E-Mail ...', 'type': 'email', 'name': 'email', 'id': 'email'})
self.fields['username'].label = 'E-Mail Address'
self.fields['password'].widget.attrs.update(
{'placeholder': 'Password ...', 'type': 'password', 'name': 'password', 'id': 'password'})
self.fields['password'].label = 'Password'