Сообщения Django не отображаются после HttpResponseRedirect
Пробовал тонны вещей там, но никто из них не помог.
у меня естьURL
например:
который вызывает нижеview
:
def edit_transaction(request):
if request.method == "POST":
if something is True:
messages.error(request, 'Error message here')
# this don't work
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
# but this work
template = "user/xyz/abc.html"
render(request, template)
else:
return HttpResponseNotFound()
else:
context = {
'key1': 'value1',
'key2': 'value2',
}
template = "user/xyz/abc.html"
render(request, template, context)
И внутри шаблона:
{% if messages %}
<h1>I am inside MESSAGES</h1>
{% for message in messages %}
{% if message.tags == 'success' %}
<div class="alert alert-success" role="alert">{{ message|escape|safe }}</div>
{% elif message.tags == 'error' %}
<div class="alert alert-danger" role="alert">{{ message|escape|safe }}</div>
{% endif %}
{% endfor %}
{% endif %}
Это попадает внутрьif
Вотif something is True:
и перенаправления на ту же страницу со строкой запроса. Но не отображается сообщение об ошибке.
Я хочу перенаправить на ту же страницу, сохранив строку запроса, и отобразить сообщение об ошибке. Что я тут не так делаю и какие изменения рекомендую (если есть).
Также сомнение, что сообщения Django действительно работают после перенаправления как сообщения Flash?
Редактировать:
1) Это не работает:
if something is True:
messages.error(request, 'Error message here')
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
Из консоли:
[16 / Sep / 2015 10:57:08] "POST / user / edit-транзакция /? Object_id = 23a959d0561711e59e36acd1b8679265 & type = брутто HTTP / 1.1" 302 0 [16 / Sep / 2015 10:57:08] "GET / user / edit-транзакция /? object_id = 23a959d0561711e59e36acd1b8679265 & type = брутто HTTP / 1.1 "200 8832
2) Это работает:
if something is True:
messages.error(request, 'Error message here')
template = "user/xyz/abc.html"
render(request, template)
Из консоли:
[16 / Sep / 2015 10:57:08] "POST / пользователь / edit-транзакция /? Object_id = 23a959d0561711e59e36acd1b8679265 & type = брутто-HTTP / 1.1" 302 0
Итак, в основном то, что я понял сверху, это то, чтоmessages
истекает с дополнительным запросом (перенаправление, 200).
И в шаблонах он не попадает внутрь{% if messages %}
а также печатать<h1>I am inside MESSAGES</h1>