提交表单时建议使用POST-Redirect-GET模式,以便在用户刷新时无效重新发送POST数据。这可以在使用以下代码处理POST数据的视图中完成:
def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
interesting_information = 'Feedback after form submit'
return HttpResponseRedirect('/thanks/')
但是使用此方案,如何向用户显示interesting_information
,例如可能是基于提交的表单的状态信息?
答案 0 :(得分:6)
您可以使用Django的Messages Framework在表单处理视图中设置消息:
from django.contrib import messages
messages.success(request, 'Feedback after form submit')
并在/ thanks / page上显示给用户:
{% 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/1.8/ref/contrib/messages/#enabling-messages)部分中的步骤进行操作。