0

コードに検証フォームのエラーメッセージが表示されないのはなぜですか?私はこのようなことを試みます:

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))

私は何が間違っているのですか?

4

1 に答える 1

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))
于 2013-02-04T11:02:27.910 に答える