1

テンプレートに正しいタグが含まれていると思いますが、「CSRFトークンが見つからないか正しくありません」というエラーが表示されます。以下は、このエラーを示しているビューとテンプレートです。

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            return HttpResponseRedirect('/contact/thanks/')
    else:
        form = ContactForm()
    return render_to_response('reserve/templates/contact_form.html',{'form': form})

レンプレート:

<html>
<head>
    <title>Contact us</title>
</head>
<body>
    <h1>Contact us</h1>

    {% if form.errors %}
        <p style="color: red;">
            Please correct the error{{ form.errors|pluralize }} below.
        </p>
    {% endif %}

    <form action="" method="post">
    {% csrf_token %}
        <table>
            {{ form.as_p }}
        </table>
        <input type="submit" value="Submit">
    </form>
</body>
</html>
4

2 に答える 2

2

指示の項目3に注意してください。render_to_responseこれを行う簡単な方法は、呼び出しをrender(request, 'reserve/templates/contact_form.html',{'form': form})(を介してインポートする)に置き換えることfrom django.shortcuts import renderです。

于 2012-06-06T14:13:18.980 に答える
0

コンテキストインスタンスをrender_to_responseに渡す必要があります

from django.template import RequestContext

return render_to_response('reserve/templates/contact_form.html', context_instance=RequestContext(request,{'form': form}))
于 2012-06-06T15:04:48.053 に答える