我正在使用try来处理views.py中的错误。 在例外区域中,如果发生错误,我想将用户重定向到模板。 重定向到模板时,我想将错误传递给模板并在该页面的开头显示错误。
try:
car.delete()
except ProtectedError, e:
return redirect(reverse('car-operations') + '?car_no=' + str(car.car_no), {'errors': e})
当我尝试删除汽车时,发生ProtectError。但是此错误不会传递到重定向页面。在转载的页面中,我使用以下代码显示错误。
{% if errors %}<div class="alert alert-danger">{{ errors }}</div>{% endif %}
我看到发生错误。但是我无法将其传递给模板。如果我使用渲染请求,则可以将错误传递给模板,但是这次我无法使用“'?car_no ='+ str(car.car_no)”调用模板
答案 0 :(得分:1)
这是因为您无法传递上下文进行重定向, 但是为了将错误传递到前端,您可以使用django消息之类的东西
from django.contrib import messages
try:
car.delete()
except ProtectedError, e:
messages.add_message(request, messages.ERROR, e)
并在模板中显示您使用此错误
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
作为参考,您可以查看https://docs.djangoproject.com/en/2.1/ref/contrib/messages/