原文出处:http://www.cppblog.com/momoxiao/archive/2011/10/03/157443.aspx?opt=admin
在settings里注释掉中间件这一行,可以暂时屏蔽csrf验证,但是这样不安全了.
1 在 templete 中, 为每个 POST form 增加一个 {% csrf_token %} tag. 如下:
<form>
{% csrf_token %}
</form>
2 在 view 中, 使用 django.template.RequestContext 而不是 Context.
render_to_response, 默认使用 Context. 需要改成 RequestContext.
导入 class:
from django.template import RequestContext
给 render_to_response 增加一个参数:
def your_view(request):
...
return render_to_response('template.html',
your_key_value,
context_instance=RequestContext(request)
)
在settings里注释掉中间件这一行,可以暂时屏蔽csrf验证,但是这样不安全了.
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
1 在 templete 中, 为每个 POST form 增加一个 {% csrf_token %} tag. 如下:
<form>
{% csrf_token %}
</form>
2 在 view 中, 使用 django.template.RequestContext 而不是 Context.
render_to_response, 默认使用 Context. 需要改成 RequestContext.
导入 class:
from django.template import RequestContext
给 render_to_response 增加一个参数:
def your_view(request):
...
return render_to_response('template.html',
your_key_value,
context_instance=RequestContext(request)
)