为什么我的代码不显示验证表单错误消息?

时间:2013-02-04 11:00:03

标签: django django-forms

为什么我的代码不显示验证表单错误消息? 我尝试这样的事情:

def index(request):
    if request.method == "POST":
        if request.POST['form-type'] == 'contact-form':
            form = AngebotForm(None, request.POST)
            if form.is_valid():
                form.save()
                msg = 'Good!'

                return render_to_response('index.html',{'msg':msg}, context_instance=RequestContext(request))

            else:
                form = AngebotForm()
        else:
            form = MessageForm(request.POST)
            if form.is_valid():
                form.save()
                msg = 'Good!'

                return render_to_response('index.html',{'msg':msg},context_instance=RequestContext(request))

            else:
                form = MessageForm()
    return render_to_response('index.html',{'a_form':AngebotForm(), 'm_form':MessageForm()},context_instance=RequestContext(request))

我做错了什么?

1 个答案:

答案 0 :(得分:1)

因为在else部分,您正在重新初始化将失去当前状态的表单。

只需删除这些行:

else:
    form = MessageForm()

最后,您的视图应如下所示:

def index(request):
    form = AngebotForm()
    m_form = MessageForm()
    if request.method == "POST":
        if request.POST['form-type'] == 'contact-form':
            form = AngebotForm(None, request.POST)
            if form.is_valid():
                form.save()
                msg = 'Good!'

                return render_to_response('index.html',{'msg':msg}, context_instance=RequestContext(request))
        else:
            m_form = MessageForm(request.POST)
            if m_form.is_valid():
                m_form.save()
                msg = 'Good!'

                return render_to_response('index.html',{'msg':msg},context_instance=RequestContext(request))

    return render_to_response('index.html',{'a_form':form, 'm_form':m_form},context_instance=RequestContext(request))
相关问题