Есть ли способ показать ошибку входа в Django?
У меня есть пользовательская страница входа для моего сайта. После ввода правильных данных учетной записи я могу войти в свой веб-сайт. Но если я ввожу неправильные данные учетной записи, страница просто обновляется, а текстовые поля username
и password
остаются пустыми. Есть ли способ показать что-то вроде 'Username or Password is wrong'
в качестве ошибки или сообщения?
В файле login.html у меня есть следующее
{% if messages %}
{%for message in messages%}
<div class ="alert alert-success" role="alert">
{{message}}
</div>
{%endfor%}
{%endif%}
{% for field in form %}
{% if field.errors %}
{% for error in field.errors %}
<div class="alert alert-danger" role="alert">
<div class="d-flex flex-row">
<div class="align-middle pr-2">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
class="bi bi-x-circle-fill" viewBox="0 0 16 16">
<path
d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z" />
</svg>
</div>
<div class="align-middle"><b>{{field.label}}</b> - {{error}}</div>
</div>
</div>
{% endfor %}
{% endif %}
{% endfor %}
Следующее, похоже, ничего не делает, если имя пользователя или пароль неверны.
В любом веб-приложении нам необходимо отображать уведомления конечному пользователю после обработки формы или некоторых других типов его запросов. Чтобы сделать эту систему обмена сообщениями простой, Django обеспечил полную поддержку обмена сообщениями на основе cookie и сессий как для анонимных, так и для аутентифицированных пользователей.
Этот фреймворк сообщений способен сохранять сообщения в одном запросе и извлекать их в последующих запросах. Каждое сообщение имеет тег, основанный на его приоритете (информация, предупреждение и ошибка).
Для получения дополнительной информации нажмите здесь.
попробуйте добавить это в свой шаблон
{% if form.errors %}
<p>username or password is wrong</p>
{% endif %}