1

お問い合わせフォームを設定しようとしていますが、送信ボタンが押されたときに送信されたフィールドを一時的に表示しようとしました(同じページ)。送信をクリックすると、連絡先フォームが表示された状態でリロードされます。だから、ここに私の見解があります:

from website.forms import ContactForm

def contact(request):

    Success = False
    email = ""
    title = ""
    text = ""

    if request.method == "POST":    
        contact_form = ContactForm(request.POST)

        if contact_form.is_valid():
            Success = True
            email = contact_form.cleaned_data['email']
            title = contact_form.cleaned_data['title']
            text = contact_form.cleaned_data['text']

    else:
        contact_form = ContactForm()

    ctx = {'contact_form':contact_form, 'email':email, 'title':title, 'text':text, 'success':success}

    return render_to_response('website/contact.html', ctx, context_instance=RequestContext(request))

ここにforms.pyがあります:

from django import forms

class ContactForm(forms.Form):
    email = forms.EmailField()
    title = forms.CharField()
    text = forms.CharField( widget=forms.Textarea )

テンプレートは次のとおりです。

{% if success %}

    <p>{{ email }}</p>
    <p>{{ title }}</p>
    <p>{{ text }}</p>

{% else %}

    <form action"." method="POST">

    {{ contact_form.as_p }}

    <input type="submit" value="Send">
    <input type="reset" value="Reset">

    </form>
{% endif %}

それは非常に単純に思えますが、何が間違っているのでしょうか?

4

1 に答える 1

1

問題は、Success != success... 変数を正しい大文字と小文字で入力する必要があることだと思います... {{success}} の出力も確認してください (「None」またはブール値ではない必要があります)。

于 2013-03-28T09:03:17.257 に答える