你能帮我理解逻辑吗 当我进入时,我需要在登录表单“您的密码不正确”“您的登录不正确”附近显示一条消息。 我有一份基本登记表,其中包含以下信息:
class RegistrationForm(auth_forms.UserCreationForm):
"""
A form that creates a user
"""
error_messages = {
'password_mismatch': 'Password mismatch.',
}
password1 = forms.CharField(
label='Password',
strip=False,
widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'})
)
password2 = forms.CharField(
label='Access password',
widget=forms.PasswordInput(attrs={'autocomplete': 'new-password'}),
strip=False
)
我认为在登录时也应该这样写:
Class AuthForm(AuthenticationForm):
error_messages = {
'password_mismatch': ("Password mismatch" ),
'invalid_login': ("Invalid login"),
}
但我认为这是不对的
my views.py此文件:
class BaseRegistrationView(ActivationEmailMixin, generic.FormView):
form_class = RegistrationForm
@transaction.atomic
def form_valid(self, form):
self.new_user = form.save(commit=True)
self.new_user = authenticate(
username=form.cleaned_data['email'],
password=form.cleaned_data['password1'],
)
login(self.request, self.new_user)
self.send_activation_email()
return super().form_valid(form)
# new
class BaseLoginView(LoginView):
authentication_form = AuthForm
和模板中的html:
{% if field.is_hidden %}
{% render_field field %}
{% else %}
<div class="form-group">
<label class="form-group__label">
{{ field.label }}
{% if field.field.required %}* {% endif %}
</label>
{% if field.field.widget.input_type == 'checkbox' %}
{% render_field field class="form-group__control" %}
{% else %}
{% render_field field class="input form-group__control" %}
{% endif %}
{% if field.errors %}
{% for error in field.errors %}
<div class="form-group__error">
{{ error }}
</div>
{% endfor %}
{% endif %}
</div>
{% endif %}
目前没有回答
相关问题 更多 >
编程相关推荐