处理POST数据后,Django返回成功/失败

时间:2015-03-10 22:36:28

标签: python django

如何让客户端知道Django是否成功处理了POST数据?如果是,它将重置当前视图,如果不是,则应该发出通知警报。

def test_page(request):
    if request.method == "POST":
        newgroup = request.POST["group"]
        print "Received result"
        # assert validateGroup(newgroup)
        t = Trial(group = newgroup, time = timezone.now(), subject = request.user)
        t.save()

    return render_to_response('interface/test.html',\
                    context_instance=RequestContext(request))

这就是我所做的,但绝对没有尝试和阻止。

1 个答案:

答案 0 :(得分:1)

您可以使用Django消息框架

  

在Web应用程序中,您需要显示一次性   通知消息(也称为“flash消息”)之后给用户   处理表单或其他类型的用户输入。

https://docs.djangoproject.com/en/1.7/ref/contrib/messages/

或者,您可以在模板中添加一个额外的变量,并在页面中显示错误。

def test_page(request):
    if request.method == "POST":
        try:
            # form-processing code
        except ValueError:
            # go back to previous page and show errors
            return render(request, 'previous_page.html',
                {'errors'=['Problem!']})

    # this will be rendered when above exception is not encountered
    return render_to_response('interface/test.html',\
                    context_instance=RequestContext(request))

在模板(previous_page.html)中,您可以这样做:

{% for err in errors %}
    <div class="error-box">
        { err }
    </div>
{% endfor %}

error-box类强调您的错误消息为可忽略通知,或者您想要显示它。