SWFUpload与Django 1.2 csrf问题

时间:2010-07-03 23:16:10

标签: django csrf swfupload

我正在尝试使用SWFUpload将文件上传到Django。找到了这篇文章Django with SWFUpload。但发现了一个问题。在Django 1.2中,csrf需要在每个表单提交时发送csrf令牌,并且它包含使用SWFUpload发送的文件。上传不会直到我关闭csrf(全局或使用@csrf_exempt装饰器进行查看)。有没有更好的方法来处理这个而不是关闭csrf?

我知道我可以使用SWFUpload post_params传递自定义数据:{“csrfmiddlewaretoken”:“”} ,.但我不知道如何只获取模板中csrf标记的值,而不是完整的输入标记。

1 个答案:

答案 0 :(得分:2)

要检索csrf令牌本身,您需要使用一些Django的内部。首先,在您的视图顶部包含此行。

from django.middleware.csrf import get_token

现在,在将参数传递给模板时,请执行类似

的操作
def my_view(request):
    return render_to_response("index.html", {"csrf_token": get_token(request)})

在您的模板中,只需使用{{ csrf_token }}引用令牌。