• Django提交POST表单“CSRF verification failed. Request aborted”问题的解决


    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

    运行正常。

  • 相关阅读:
    es6之Promise
    es6之Proxy,Reflect
    js之对象
    Set,Map与Array,Object对比
    es6之数据结构 set,WeakSet,mapWeakMap
    es6之Symbol
    flex布局
    盒子模型,top和margin-top
    POJ1274-The Perfect Stall
    Codeforces 671D. Roads in Yusland 题解
  • 原文地址:https://www.cnblogs.com/legendjslc/p/5415594.html
Copyright © 2020-2023  润新知