私はDjango Classifieds AppをもとにDjangoアプリケーションを作成しようとしていますが、フォームを送信しようとすると、エラーを取得しています:CSRF verification failed. Request aborted. Reason given for failure: CSRF token missing or incorrect.
"CSRF検証に失敗しました。CSRFトークンがないか正しくありません。ジャンゴ
私は形で{% csrf_token %}
を持っている:
<form method="post" action="{% url classifieds.views.create.checkout ad.pk %}">
{% csrf_token %}
<table>
{{ form }}
<tr>
<th><label>Total:</label></th>
<td><div id="total">Choose options above</div></td>
</tr>
</table>
</form>
私はまた、私はまた私のsettings.pyにMIDDLEWARE_CLASSESで'django.middleware.csrf.CsrfViewMiddleware',
が含まれているfrom django.template import RequestContext
を使用しています
フォームを適切に提出するために他に何が欠けていますか?
関数は次のようになります。
def checkout(request, adId):
ad = get_object_or_404(Ad, pk=adId)
if request.method == 'POST':
form = CheckoutForm(request.POST)
if form.is_valid():
...
payment.save()
if django_settings.DEBUG:
paypal_form = PayPalPaymentsForm(initial=paypal_values).sandbox()
else:
paypal_form = PayPalPaymentsForm(initial=paypal_values).render()
return render_to_response('classifieds/paypal.html', {'form': paypal_form}, context_instance=RequestContext(request))
else:
form = CheckoutForm()
return render_to_response('classifieds/checkout.html', {'ad': ad, 'form': form}, context_instance=RequestContext(request))
は、ご提案をいただき、ありがとうございます。
全体RequestContextのを使用するので、あなたは、ミドルウェアやコンテキストプロセッサをCSRFていますか? – DrTyrsa
Chechあなたがミドルウェア/デコレータなどを必要としている場合はChech ... https://docs.djangoproject.com/en/1.4/ref/contrib/csrf/#how-it-works – FallenAngel
はい、 django.middleware.csrf.CsrfViewMiddleware 'をsettings.pyのMIDDLEWARE_CLASSESに追加してください。私が行方不明になる可能性のあるものは何ですか? –