Django csrf令牌

Django csrf令牌,django,csrf,django-csrf,Django,Csrf,Django Csrf,views.py from django.core.context_processors import csrf context.update(csrf(request)) {'csrf_token': <django.utils.functional.__proxy__ object at 0xae0f4ec>} 处理器从django.core.context\u导入csrf 上下文更新(csrf(请求)) {'csrf_令牌':} 我正在尝试将csrf令牌添加到我的表单中。我

views.py

from django.core.context_processors import csrf
context.update(csrf(request))
{'csrf_token': <django.utils.functional.__proxy__ object at 0xae0f4ec>}
处理器从django.core.context\u导入csrf 上下文更新(csrf(请求)) {'csrf_令牌':}
我正在尝试将csrf令牌添加到我的表单中。我正在上面的视图中生成csrf令牌。但是csrf_令牌值提供了一些类似上面所示的代理对象,而不是字符串。我正在使用django 1.3。提前感谢您提供的任何帮助。

csrf方法是惰性的,它返回一个承诺/代理。一旦在模板中调用了该对象,模板引擎将对该对象进行unicode编码,从而触发real方法

试试这个:

print unicode(csrf(request)['csrf_token'])

为什么要手动执行此操作?您不是在模板中使用了
RequestContext
{%csrf\u token%}
。@Rohan我不是在使用RequestContext,而是在模板中使用了{%csrf\u token%}template@Willain是的,现在我得到了字符串。但是在模板中,即使我使用{%csrf_token%}模板标记,我也没有隐藏字段。您的中间件中是否有CsrfViewMiddleware@Willain是的,我有django.middleware.csrf.csrfviewMiddleware您使用的是什么django版本?