使用POST-Redirect-GET模式时如何显示已提交表单的状态?

时间:2015-09-30 11:25:09

标签: django django-forms

提交表单时建议使用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,例如可能是基于提交的表单的状态信息?

1 个答案:

答案 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)部分中的步骤进行操作。