1、环境
python 3.4
Django 1.7
Visual Studio 2015 PTVS
2、问题
提交表单,出现以下错误:
CSRF verification failed. Request aborted.
3、解决
查看settings.py, 有 'django.middleware.csrf.CsrfViewMiddleware' 一句:
1 MIDDLEWARE_CLASSES = (
2 'django.contrib.sessions.middleware.SessionMiddleware',
3 'django.middleware.common.CommonMiddleware',
4 'django.middleware.csrf.CsrfViewMiddleware',
5 'django.contrib.auth.middleware.AuthenticationMiddleware',
6 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
7 'django.contrib.messages.middleware.MessageMiddleware',
8 'django.middleware.clickjacking.XFrameOptionsMiddleware',
9 'cstnet.middleware.urlsfilter',
10 'jobfarm.middleware.MultipleProxyMiddleware',
11 'jobfarm.middleware.OAuthJobFarmFilter'
12 )
在表单处理函数前添加 @csrf_protect :
1 #申请表单处理
2 @csrf_protect
3 def doapply(request):
4 context = {
5 'group':request.POST['group'],
6 'host':request.POST['host'],
7 'image':request.POST['image'],
8 'net':request.POST['net'],
9 'vcpu':request.POST['vcpu'],
10 'num':request.POST['num'],
11 'remarks':request.POST['remarks']
12 };
13 ...
并在文件头导入命名空间,不然会找不到csrf_protect:
1 from django.views.decorators.csrf import csrf_protect
运行正常。
|