Django常见错误总结
1 ImportError: No module named 'MySQLdb'
解决方法:
. 安装pymysql模块
. 在app的__init__.py文件中写入以下内容
import pymysql
pymysql.install_as_MySQLdb()
2 ImportError: cannot import name 'Thing2Literal' AttributeError: module 'pymysql' has no attribute 'install_as_MySQLdb'
解决方法:
. pip3 uninstall PyMySQL3
. pip3 install -U --force-reinstall pymysql
3 You are trying to add a non-nullable field 'publication_date' to book
without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
解决方法:
这个错误常见于后期修改了model.py文件,在做数据库同步时报错,只要把这个新增字段允许为空即可!
因为默认字段是非空,所以设置字段允许为空(曾尝试设置default="",migrate同步失败)
示例:publication_date = models.DateField(null=True)
4 pymysql.err.InternalError: (1050, "Table 'app01_authordetail' already exists")
解决方法:
因为错误同步,导致正确的表结构无法同步过去,只能删除旧表再同步,适用于测试数据库。如果数据库中有重要的数据库千万别这么干!
. 删除app/migrations/下除__init__.py外所有的py文件;
. 登录数据库删除所有的表;
. 将数据库中django_migrations表中相关的同步记录删除;
. 再次同步 python3 manage.py makemigrations; python3 manage.py migrate
5 'QuerySet' object has no attribute 'book_set'
解决方法:
QuerySet没有_set方法,必须是Object才可以,所以使用first()将对象从列表中取出
示例:
obj = Publisher.objects.filter(name="机械出版社")first()
print(obj.book_set.all().values("title"))
6 django.db.utils.OperationalError: no such table: django_session
解决方法:
这是因为还没有进行数据库同步,数据库中还没有创建相关联的表
python3 manage.py makemigrations
python3 manage.py migrate
7 RuntimeWarning: DateTimeField received a naive datetime
报错原因:
这是由于Django默认使用的时间都是带时区的,而我们在插入数据时使用的datetime是不带时区的。
解决方法:
方案一:
把setting.py文件中USE_TZ改为false,默认不使用时区
方案二:
pip3 install pytz
import pytz
datetime.now(tz=pytz.UTC)
导入pytz模块,datetime生成时间时带上时区
8 Got an error creating the test database: (1007, "Can't create database 'test_django_db'; database exists")
Type 'yes' if you would like to try deleting the test database 'test_django_db', or 'no' to cancel:
原因:
Django test数据库自动生成的数据库字符集是latin1,不是utf8,所以当表中有中文会报错 解决方法:
https://docs.djangoproject.com/en/1.11/ref/settings/#charset
设置test数据库字符集为“utf8”
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'mysql',
'HOST': '',
'PORT': '',
'TEST': {'CHARSET': 'utf8', },
}
}
9 UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list:
原因:
因为obj.objects.all()的结果是无序的,Paginator分页会出错 解决方法:
在查询结果上加上order_by排序, obj.objects.all().order_by("id")
其它:
setting.py文件中设置的时区是"Asia/Shanghai",数据库中存储的时间是UTC时间,模板中按照资料说应该自动渲染成东八区,
但是没有,要么手动给他增加8个小时,要么通过astimezone方法更改它的时区 解决方法(column_data是带时区的时间):
import pytz
from django.utils.timezone import datetime, timedelta
tz = pytz.timezone("Asia/Shanghai")
# 笨方法:
column_data = (column_data + timedelta(hours=)).replace(tzinfo=tz).strftime("%Y-%m-%d %H:%M:%S %Z") # 聪明方法:
column_data = column_data.astimezone(tz=tz).strftime("%Y-%m-%d %H:%M:%S %Z")
# 如果手动修改了数据库中的记录,再migration同步时会出错 解决方法:
. python3 manage.py makemigrations
. python3 manage.py migrate --fake
Django常见错误总结的更多相关文章
- django 常见错误汇总
File "D:\python\django\mysite\mysite\view.py", line 7 SyntaxError: (unicode error) 'utf-8' ...
- Django 常见错误总结
1,在 Django 的框架中,从view中对文本文档进行处理的过程中,发现总是找不到对应的 .txt 文件,而在同级目录下面的 tests.py(自己新建的 py 文件)中却能找到,后来发现还是路径 ...
- python安装Django常见错误
今天没事安装了一下python的web框架,Django.自己踩了一些雷,记录下来,留给后面的学者们,不要踩同样的雷了. 1.pip版本过低,安装不了,升级pip指令 python -m pip in ...
- 初识JAVA(二)(送给Java和安卓初学者)----常见错误
博主接着上篇的来讲哦,以后的更新中,博主会出一些练习题,有兴趣的可以做做然后吧代码粘贴到下面,大家可以一起研究学习,一起进步,本篇文章主要讲的是: 一.常见错误 二.连接上篇一起的训练 无论是什么方向 ...
- ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock
ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock 通过终端安装程序sudo apt-get install xxx时出错:E: Could not ...
- coreseek常见错误原因及解决方法
coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...
- Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...
- C语言初学者代码中的常见错误与瑕疵(23)
见:C语言初学者代码中的常见错误与瑕疵(23)
- struts2.5框架使用通配符指定方法常见错误
struts2.5框架使用通配符指定方法(常见错误) 在学习struts框架时经常会使用到通配符调用方法,如下: <package name="shop" namespace ...
随机推荐
- 因子分析和PCA总结
因子分析和PCA 定义 因子分析就是数据降维工具.从一组相关变量中删除冗余或重复,把相关的变量放在一个因子中,实在不相关的因子有可能被删掉.用一组较小的“派生”变量表示相关变量,这个派生就是新的因子. ...
- Vue动画封装
<head> <meta charset="UTF-8"> <title>Title</title> <script src= ...
- XCOM串口助手打印不出数据
本次实验是在基于原子的战舰开发板上的做定时器捕获实验,程序源码下载到板子上运行正常.指示灯正常显示,打开XCOM识别不来串口,原因:硬件上没有插USB转串口线: 连接上USB转串口线,软件上以显示CH ...
- 系统学习python第六天学习笔记
1.补充 1.列表方法补充 reverse,反转. v1 = [1,2,3111,32,13] print(v1) v1.reverse() print(v1) sort,排序 v1 = [11,22 ...
- POJ 1201 Intervals【差分约束】
传送门:http://poj.org/problem?id=1201 题意: 有n个如下形式的条件:,表示在区间[, ]内至少要选择个整数点.问你满足以上所有条件,最少需要选多少个点? 思路:第一道差 ...
- linux文件软链接与硬链接
1.命令格式: ln [参数][源文件或目录][目标文件或目录] 软链接只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间. 2.命令功能: Linux文件系统中,有所谓的链接(link),我们 ...
- C++构造函数概念作用
作用: 对对象进行初始化,如给成员变量赋初值,而不用专门再写初始化函数. 防止有些对象没被初始化就使用,导致程序出错. 要求: 名字与类名相同,可以有参数,但不能有返回值(void也不行) 编译时: ...
- not in 优化 NOT EXISTS替代
优化前 SELECT id, loan_id, NAME FROM xw_baoxian_interchange WHERE , , ) , ) AND loan_id NOT IN ( SELECT ...
- SDL实践:产品经理如何驱动产品安全建设
一.序言 本文从产品经理的角度出发,对产品经理的安全职责.产品驱动安全的内涵.工作内容.工作方法.所需安全资源.以及产品经理的安全工作量进行了分析.希望所有产品经理在没有心理负担的情况下,有目标.有方 ...
- 京东云数据库 RDS助力企业便捷运维
iPhone6发布那年,京东在国贸等商圈送货最快速度数分钟,包括从下单到送达.这是一个极端的富含营销因素例子.即便如此,常态来看,隔天到货的这种业务模式,也是基于同样的支撑:营销业务.物流业务,大数据 ...