当您登录“您的密码不正确”时,我需要一条文本

2024-05-08 14:30:37 发布

您现在位置:Python中文网/ 问答频道 /正文

你能帮我理解逻辑吗 当我进入时,我需要在登录表单“您的密码不正确”“您的登录不正确”附近显示一条消息。 我有一份基本登记表,其中包含以下信息:

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 %}

热门问题