【问题标题】:SWFUpload with Django 1.2 csrf problemSWFUpload 与 Django 1.2 csrf 问题
【发布时间】:2011-03-11 12:45:34
【问题描述】:

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

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

【问题讨论】:

  • 我也在使用 django 1.2,并且我添加了 csrf 令牌,但我收到“uploadError: ... HTTP Status: 403”。有什么想法吗?

标签: django csrf swfupload


【解决方案1】:

要检索 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 }} 引用令牌。

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 2016-04-19
    • 2011-07-26
    • 1970-01-01
    相关资源
    最近更新 更多