Как вывести предупреждение на экран - шаблон Django
Я написал шаблон для ввода информации пользователем, у каждого пользователя будет свой пароль. Я хотел бы проверить пароль при вводе, если пароль неправильный, то пользователь получит всплывающее сообщение "неправильный пароль..." или что-то подобное.
Я пытался импортировать библиотеку сообщений, но она не работает правильно, не могли бы вы помочь?
Ниже приведен мой код:
views.py
from .models import Register1
@csrf_exempt
def reg(request):
if request.method == 'POST':
if request.POST.get('password') =="Password":
print(request.POST.get('password'))
if request.POST.get('phone') and request.POST.get('name') and request.POST.get('email'):
post=Register1()
post.phone= request.POST.get('phone')
post.name= request.POST.get('name')
post.email= request.POST.get('email')
post.save()
return render(request, 'posts/reg.html')
else:
print(request.POST.get('password'))
messages.add_message(request, messages.INFO, 'Wrong Password')
return render(request,'posts/reg.html')
else:
return render(request,'posts/reg.html')
templates/posts/reg.html
<meta charset="UTF-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<div class="container mt-3">
<body>
<div class="col-9">
<!-- <h2>Input your password to continue proceed</h2>
password: <input id = "pwd" type="password" name="password"/><br/>
<div class="col-3 "> -->
<!-- <button class="btn btn-primary" onclick="validate()">proceed</button>
</div> -->
</div>
<div class="col-6 mt-3">
<form action="" method="POST">
{% csrf_token %}
<h2>Input your password to continue proceed</h2>
password: <input id = "pwd" type="password" name="password"/><br/>
<div class="col-3 ">
Phone: <input type="text" name="phone"/><br/>
<!-- Name: <br/>
<textarea cols="35" rows="8" name="name">
</textarea><br/> -->
Name: <input type="text" name="name"/><br/>
Email: <input type="text" name="email"/><br/>
<input type="submit" value="Post"/>
</form>
</div>
</body>
</div>
Фреймворк сообщений позволяет устанавливать сообщения в одном запросе и получать их в другом. Вам необходимо обновить ваш шаблон, чтобы получить их и указать, как отображать их.
В качестве примера можно выбрать Bootstrap Alert:
<div class="col-6 mt-3">
{% for message in messages %}
<div class="alert alert-info" role="alert">{{ message }}</div>
{% endfor %}
<form action="" method="POST">
{% csrf_token %}
...
</form>
</div>