3

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

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

4

1 回答 1

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 }}.

于 2010-07-04T00:10:19.950 回答