2015-08-19 10 views
0

Я хочу показать сообщение об успешном завершении на моей странице шаблона после отправки формы. Я перенаправлен на ту же страницу.Как успешно отобразить сообщение об успешном завершении

xxx.html

{% if messages %} 
    {{ messages }} 
{% endif %} 

views.py

return HttpResponseRedirect(reverse('report'),{'messages':'hai'}) 

Я не получил ничего. я получаю ошибку, как Noreversematch аргументы ключевого слова не найдены.

Traceback Error: 
    Reverse for 'report' with arguments '()' and keyword arguments '{}' not found. 

в urls.py

url(r'^(?P<name>[\w\d_\.\-]+)/reports-issue$', IssueMailSent.as_view(), name='report') 
+3

Пожалуйста, не говорите, что ошибка «нравится» - поместите трассировку в вопрос, чтобы мы могли использовать информацию в ней для отладки вашей проблемы. Поверхностно выглядит, что вы не указываете идентификационный URL-адрес 'reverse()'. – holdenweb

+0

Просьба указать [mcve] – jonrsharpe

+0

Вы пытаетесь изменить URL-адрес, например '/ /reports-issue', но вы не сказали, что такое' name'. – Alasdair

ответ

0

Когда вы HttpResponseRedirect, вы сообщаете браузер пользователя для перенаправления на новый адрес. Вы не можете включить контекст, поэтому невозможно включить сообщение таким образом.

Самый простой способ показать сообщение об успешном использовании - использовать встроенную структуру сообщений Django. Вы создаете сообщение, а затем перенаправляете.

messages.success(request, "hai") 
return HttpResponseRedirect(reverse('report')) 

Для получения полной информации см. messages docs.

+0

Я пробовал, как ты сказал. Но он всегда отображается при загрузке страницы. I jus хочет отображать только после отправки формы –

+0

Приведенный выше код должен отображать сообщение только один раз. Если вы создадите сообщение после отправки формы, оно будет отображаться только при отправке формы. Не видя своего кода, я не могу сказать, что вы делаете неправильно. – Alasdair

Смежные вопросы