django:render与render_to_response及其与csrf_token的关系

时间:2012-01-09 04:19:03

标签: django django-csrf

我经常在django中使用render_to_response作为我的视图函数。

然而,最近,我一直在尝试使用更多的渲染方法(https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render),正如我从文档中理解的那样,如果没有提供,则自动包含'context_instance'。

这个可选的context_instance参数如何与crsf_token相关?我是否必须使用类似

之类的内容明确发送模板变量,例如“csrf(request)”
template_vars.update(csrf(request))

我问这个是因为我得到了一个莫名其妙的

"Forbidden (403) CSRF verification failed. Request Aborted". 

即使我在settings.py和我的模板,表单中启用了csrf中间件,也可以调用{%csrf_token%}模板标签。

1 个答案:

答案 0 :(得分:1)

您是否忘记将django.core.context_processors.csrf添加到TEMPLATE_CONTEXT_PROCESSORS