Django CSRF在500错误页面上有一个表单

时间:2012-08-09 19:53:18

标签: django forms csrf

我有一个500错误页面,其中有一个表单,但是当抛出500错误页面时,不会生成CSRF令牌。在500错误页面上生成CSRF令牌以使表单发布的最佳方法是什么?我应该只定义自己的自定义500错误视图吗?

2 个答案:

答案 0 :(得分:0)

好的,我尝试定义自定义500视图并且工作,对于有相同问题的任何人,这里是如何:

定义自定义500错误视图

from django.shortcuts import render

def server_error(request):
    vars = {}
    return render(request, '500.html', vars, status=500)

然后在主urls.py中添加:

handler500 = 'your_app.views.errors.server_error'

答案 1 :(得分:0)

您必须在 ajax 请求中传递令牌

                          var data = {
                            errorresponse: errorresponse,
                            'csrfmiddlewaretoken': '{{ csrf_token }}',
                            }
                                 
                            $.ajax({
                                type: "POST",
                                url: "/your-target-url/",  
                                data: data,  // this passes data context into view
                                success: function(data) {