python3 Django框架报错(备忘录)

这篇博客主要总结的学习Django框架中,遇到的报错如何去解决问题:

1、decimal.InvalidOperation: 

decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

在最后一行出现这样的报错:

decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]

这个报错其实是数据库的数据长度超过了原本的长度

在models中定义类型是DecimalField中的(max_digits的范围,decimal_places=小数的长度)

分析:

因为max_digits的长度包括decimal_places的长度,数据库的数据经过运算超越了原本的最大长度,就会出现这种报错!

解决方法:

就是max_digits的长度增加,就能解决这个异常! (6月22日)

2、no such table: django_session

no such table: django_session

这个报错其实很简单的报错,意思就是数据库没有django_session,这个报错还是很好解决的。

解决方法:

就是在数据库中创建表,在pycharm 中的Terminal 中输入两个命令:

python manage makemigrations  先把要修改的内容登记到小本本上

python manage migrate   在数据库中创建表 这生成的是django的默认的表格

表格创建好,这个报错就能解决了。(6月26日)

3、 出现莫名其妙的 app01

我项目中的app名字并不是app01,可是运行python manage.py makemigrations的时候总是提示app01不是已安装的app

Applying admin.0003_auto_20180701_0233...Traceback (most recent call last):  
FiApplying admin.0003_auto_20180701_0233...Traceback (most recent call last): Field ...

解决办法:

找到自己的python环境下的site-packages/django/contrib/admin/migrations,把里面的py文件全删掉即可。

4、django.core.exceptions.FieldDoesNotExist: model has no field named <id>

使用了自定义的auth表,结果建表的时候提示admin找不到某个字段

解决办法:

找到自己的python环境下的site-packages/django/contrib/admin/migrations,把里面的py文件全删掉即可。

5、点击页面的按钮绑定AJAX提交数据但是后端收不到任何数据

这种情况一般是form表单中使用了 <button>提交</button>按钮,但是<button>< button/>按钮中没有明确指定type="button"。

解决办法:

使用AJAX提交数据的时候,提交数据的按钮可以使用如下方式:

1. 使用最保险的input标签, 并且指定type类型为button

<form>
    ...
    <input type="button" value="提交">
</form>

2. 既然使用ajax提交数据就没必要再写form标签。

直接用div包裹获取用户输入的input标签即可。

3. 使用button按钮的时候,明确指定type类型为button, type一定不能省!!!

<button type="button">提交</button>

6、ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js

这个问题是用Google的浏览器的问题,配置jQuery的URL

django-debug-toolbar 默认使用的Google的地址,默认配置如下:

JQUERY_URL=‘//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js’

解决方法:

在国内Google无法加载默认的jQuery的URL,我们就在settings.py中配置一下,我们特意选用了和原作者相同版本的jQuery:

DEBUG_TOOLBAR_CONFIG={
    'JQUERY_UPL':'//cdn.bootcss.com/jquery/2.2.4/jquery.min.js'
}

也可以在Django项目中使用了jquery的话就可以直接将这一设置为空,那么django-debug-toolbar就会使用你项目中用到的jquery:

DEBUG_TOOLBAR_CONFIG={
    'JQUERY_URL':'',     
}
#不用改源码,在settings.py中加这个配置项就可以
原文地址:https://www.cnblogs.com/ManyQian/p/9214624.html