Django 1.9:使用Stripe丢失或不正确的CSRF令牌

时间:2016-02-29 02:28:01

标签: django csrf stripe-payments django-csrf django-1.9

这可能是重复但我尝试使用其他答案中的RequestContext,但它对我没有用

checkout_test.html

<form action="" method="POST"> {% csrf_token %}
    <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="pk_test_37uDrOYvvyyJSLoV0ziJcYyl"
        data-amount="2000"
        data-name="Demo Site"
        data-description="2 widgets ($20.00)"
        data-image="/128x128.png"
        data-locale="auto">
    </script>
</form>

views.py

def user_review_list(request, username=None, errmsg=None):
    return render(request, 'checkout_test.html', {})

所以在user_review_list.html中,条纹提供了一个按钮 当我填写信息并单击按钮时,它会引发错误:

CSRF token missing or incorrect.

我该如何解决这个问题?

我已经尝试使用renderrender_to_response更改为RequestContext,但这不起作用

1 个答案:

答案 0 :(得分:2)

您无法将CSRF Coo​​kie传递给Stripe并返回。一种解决方法是使用@csrf_exempt装饰器:

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def user_review_list(request, username=None, errmsg=None):
    ...