django项目 报错汇总

1、(django1.10)访问url报错Forbidden (CSRF cookie not set.): xxx

解决方法:

修改settings.py文件,注释掉django.middleware.csrf.CsrfViewMiddleware'

django项目 报错汇总_第1张图片

2、ORA-00984: 列在此处不允许

描述:

通过Python写到Oracle数据库中会报这个错,语句如下

sql = "insert into BM_test_class(BM,MC) values ({0},{1})".format(classid,classname)

解决方法:

在{0}和{1}外加上单引号,如下

 sql = "insert into BM_test_class(BM,MC) values ('{0}','{1}')".format(classid,classname)

 

3、AttributeError: 'dict' object has no attribute 'status_code'

描述:

在FireFox、Chrome浏览器下,点击某个按钮进行页面跳转时,控制台提示 window.location.href is not a function.

解决方法:

return httprespone(redirect或者render)

原因:

views层的函数,有两个基本限制:

1.第一个数必须是request

2.必须返回HttpResponse类的一个实例(对象).

如果只返回了字典类型的数据内容就会报错,应该用HttpResponse包裹一下返回信息,如果返回信息是字典的话,json转一下

return HttpResponse(json.dumps(ret))。

4、locatin.href is not a function

描述:

在执行json时,控制台提示 window.location.href is not a function.

解决方法:

将代码做如下修改

location.href ("http://www.baidu.com");
location.href = "http://www.baidu.com";

原因:

这是由于这个属性在这些浏览器中是只读属性,并不能通过这样的方式进行赋值跳转。第一种格式在IE下可以正常跳转,但是在Firefox和chrome下却不行

4、Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse ()

描述:

在执行json时,控制台提示 Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse ().

解决方法:

将代码做如下修改

def model_students_edit(request):
    ret = {'status':True,'message':None}
    try:
        stuid = request.POST.get('stuid')
        stunum = request.POST.get('stunum')
        stuname = request.POST.get('stuname')
        classid = request.POST.get('classid')
        sql = "update bm_test_student set classid = '{0}', stunum = '{1}',stuname = '{2}'  where id = '{3}'".format(classid,stunum,stuname,stuid)
        sqlhelp.edit_it(sql)
        return redirect('/students/')
    except Exception as e:
        ret['status'] = False
        ret['message'] = str(e)
    return HttpResponse(json.dumps(ret))

 去掉views层函数model_students_edit的redirect跳转

def model_students_edit(request):
    ret = {'status':True,'message':None}
    try:
        stuid = request.POST.get('stuid')
        stunum = request.POST.get('stunum')
        stuname = request.POST.get('stuname')
        classid = request.POST.get('classid')
        sql = "update bm_test_student set classid = '{0}', stunum = '{1}',stuname = '{2}'  where id = '{3}'".format(classid,stunum,stuname,stuid)
        sqlhelp.edit_it(sql)
        #return redirect('/students/')
    except Exception as e:
        ret['status'] = False
        ret['message'] = str(e)
    return HttpResponse(json.dumps(ret))

原因:

return redirect 的话,这个函数返回的data就不再支持json格式化了,后面jquery进行JSON.parse的时候就会报错

5、Uncaught TypeError: $(…).find(…).once is not a function in bootstrap/js/bootstrap.js?

解决:将引入的js和页面写的js放一起,引入的js放到页面的最前面

 

6、django.template.exceptions.TemplateDoesNotExist

描述:

多个app时,报错

解决方法:

检查setting配置文件

TEMPLATES是否配置各个app

django项目 报错汇总_第2张图片

INSTALLED_APPS是否注册app

django项目 报错汇总_第3张图片

你可能感兴趣的:(django)