2012-01-09 71 views
2

我通常在django中为我的视图函数使用render_to_response。django:渲染与render_to_response及其与csrf_token的关系

但是,最近,我一直在尝试使用更多的渲染方法(https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render),正如我在这里理解的如果没有提供,docs会自动包含'context_instance'。

这个可选的context_instance参数与crsf_token有什么关系?我一定要在一个模板变量明确地发出诸如“CSRF(请求)”,使用类似

template_vars.update(csrf(request)) 

我问到这个问题,因为我得到一种莫名其妙的

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

即使我在我的settings.py中启用了csrf中间件,并在我的模板窗体中使用了{%csrf_token%}模板标签调用。

回答

1

您忘了添加django.core.context_processors.csrfTEMPLATE_CONTEXT_PROCESSORS

+0

nope。不幸。我已经包含在TEMPLATE_CONTEXT_PROCESSORS – 2012-01-09 15:40:33

+0

然后发布您的视图代码。 – 2012-01-10 14:12:49