我正在尝试使用 SWFUpload 将文件上传到 Django。找到这篇文章 Django with SWFUpload 。但是发现一个问题。在 Django 1.2 中,csrf 需要在每次提交表单时发送 csrf token ,并且它包括使用 SWFUpload 发送的文件。因此,在我关闭 csrf(全局或使用 @csrf_exempt 装饰器查看)之前,不会上传。有没有比关闭 csrf 更好的方法来处理这个问题?
我知道我可以使用 SWFUpload post_params: {"csrfmiddlewaretoken": ""}, 传递自定义数据。但我不知道如何在模板中只获取 csrf token 的值,而不是完整的输入标签。
最佳答案
要检索 csrf token 本身,您需要使用一些 Django 的内部结构。首先,将此行包含在您的 View 顶部。
from django.middleware.csrf import get_token
现在,将参数传递给模板时,请执行以下操作
def my_view(request):
return render_to_response("index.html", {"csrf_token": get_token(request)})
在您的模板中,只需使用
{{ csrf_token }}
引用 token 。关于django - SWFUpload with Django 1.2 csrf 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3173162/