我正在尝试使用SWFUpload将文件上传到Django。找到了这篇文章Django with SWFUpload。但发现了一个问题。在Django 1.2中,csrf需要在每个表单提交时发送csrf令牌,并且它包含使用SWFUpload发送的文件。上传不会直到我关闭csrf(全局或使用@csrf_exempt装饰器进行查看)。有没有更好的方法来处理这个而不是关闭csrf?
我知道我可以使用SWFUpload post_params传递自定义数据:{“csrfmiddlewaretoken”:“”} ,.但我不知道如何只获取模板中csrf标记的值,而不是完整的输入标记。
答案 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 }}
引用令牌。