我正在使用 Django 框架創建一個注冊表單,如果用戶輸入了錯誤的確認密碼或已發送的電子郵件等,我想向用戶顯示一些錯誤訊息。我已經撰寫了代碼,它似乎正在作業,但我如果表單中有錯誤,重定向到注冊頁面后似乎無法在螢屏上顯示訊息。我已經在 views.py 頁面上匯入了訊息(來自 django.contrib 匯入訊息),我認為我的 setting.py 配置正確:setting.py
這是我的views.py代碼:
def register(request):
if request.method == "GET":
register_form = RegisterForm()
return render(request, "main/register.html", {
'form': register_form
})
else:
register_form = RegisterForm(request.POST)
if register_form.is_valid():
first_name = request.POST['first_name']
last_name = request.POST['last_name']
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
confirm_password = request.POST['confirm_password']
if password == confirm_password:
if User.objects.filter(email=email).exists():
messages.info(request, 'Email or user name Already taking')
return redirect('register')
elif User.objects.filter(username=username).exists():
messages.info(request, 'username is taken')
return redirect('register')
else:
User.objects.get_or_create(username=username,
first_name=first_name, last_name=last_name, email=email,
password=password)
return redirect('main/login.html')
else:
messages.error(request, 'Password Not Match')
return redirect('register')
#return redirect ('/')
else:
return render(request, 'main/login.html')
這是我的 register.html 表單:
<form action="{% url 'register' %}" method="POST">
{% csrf_token %}
<fieldset>
<legend>Enter details</legend>
<ul>
{{ form.as_table }}
<button type="submit" class="mybutton _f-purple" value="submit">Register</button>
</ul>
</fieldset>
</form>
感謝任何可以提前提供幫助的人
uj5u.com熱心網友回復:
你好,我認為這是你需要的
{% if messages %}
<div class="mgs-area">
<div class="mgs-item">
{% for message in messages %}
<span {% if message.tags %} class="nav_item message-{{ message.tags }} " {% endif %}> {{ message }} </span>
{% endfor %}
</div>
</div>
{% endif %}
您可以以不同的方式設定成功或錯誤訊息的樣式
class="nav_item 訊息-{{ message.tags }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/487014.html
