Django после редиректа добавление form.errors в сообщения не отображается в шаблоне?
после редиректа добавление form.errors в сообщения, если форма не действительна, form.errors не появляется в шаблоне
@login_required(login_url="login")
@user_passes_test(user_is_patient_check, login_url='login')
def changePasswordPatient(request):
if request.method == "POST":
form = PasswordChangeForm(request.user,request.POST)
if form.is_valid():
user=form.save()
update_session_auth_hash(request, user)
messages.success(request,'Şifreniz başarıyla güncellendi!')
return redirect("changePasswordPatient")
else:
messages.error(request,form.errors,extra_tags="invalidchangepassword")
return redirect("changePasswordPatient") # this part
form=PasswordChangeForm(request.user)
context={
"form":form,
"which_active":"passwordchange"
}
return render(request,"change-password.html",context)
но когда я изменил if form not valid part как например используя this(render method).Form errors showing in template.But in this method when I refresh page errors messages still showing.Can anyone help me to fix that?
if form.is_valid():
user=form.save()
update_session_auth_hash(request, user) # Important!
messages.success(request,'Şifreniz başarıyla güncellendi!')
return redirect("changePasswordPatient")
else:
messages.error(request,form.errors,extra_tags="invalidchangepassword")
return render(request,"change-password.html",{"form":form,"which_active":"passwordchange"})
change-password.html
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
<center><strong>{{ error|escape }}</strong></center>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
<center><strong>{{ error|escape }}</strong></center>
</div>
{% endfor %}
{% endif %}
Вы можете отредактировать свой redirect
следующим образом:
messages.error(request,form.errors,extra_tags="invalidchangepassword")
return redirect("changePasswordPatient", {"form":form}) # this part