Всякий раз, когда я размещаю форму, я отображаю сообщения об ошибках. Однако, как я добавляю вспышки в очередь, некоторые сообщения остаются после того, как я отправил POST в форму, а некоторые нет. Я заметил, что это связано с тем, как я добавляю сообщения в очередь.
Обычный способ, который отлично работает:
post_data = request.POST
if 'submit' in post_data:
... function(post_data) ...
if ...:
request.session.flash(u'This is some error message')
request.session.flash(u'Maybe some other error message')
А в файле мако:
<html>...<body>...
% for m in request.session.pop_flash():
<div class="alert-message">
<p>${m}</p>
</div>
% endfor
...</body></html>
Однако я хочу, чтобы некоторые сообщения работали:
if 'submit' in post_data:
messages = function(...) # output is always a list
for m in messages:
request.session.flash(m)
Когда я делаю это, каждый раз, когда я повторяю сообщение в ту же форму, ВСЕ предыдущие сообщения снова добавляются в .flash (). Таким образом, сообщения об ошибках просто продолжают накапливаться. Как мне это исправить или обойти это?