django 403,django3中文文档
学习笔记,仅供参考
数据库的迁移
我在学习一对多映射时,由于操作不慎,导致报错频频,现在,我就来解决这个问题,顺便学习一下迁移操作。
现在,我在第七次迁移时出错了,它的错误是这样的:
pymysql。呃。内部错误:(1054,中国_出版商 中的未知列pub’)报错信息显示,酒吧字段不在中国_出版商表中。
我修改之后,还有一个报错,它是这样的:
姜戈。db。utils。内部错误:(1366,’不正确的整数值: 清华大学出版社对于第一行的列pub _ id )错误太多,我也不知道该怎么办,所以我选择回到前几次迁移文件,重新开始。
看一下项目目录,方便后续理解:
目前,我在第七次迁移的位置,我想回到第一次迁移,那该咋整呢?
我们可以在煤矿管理局中敲入如下代码:
python manage.py迁移书店0001输出:
要执行的操作:
目标特定迁移:0001_initial,来自书店
运行迁移:
呈现模型状态.完成的
未申请书店。0002 _作者.好这里,我从0007退到0005,发现姜戈还是可能会报错,就再退到0002,发现姜戈依然可能会报错,最后退到0001,也就是说我敲入了3次退回代码。上面显示的输出,是我从0002退回到0001的输出。
我们查看一下数据库:
关系型数据库显示表格;
-
Tables_in_mywebdb
-
授权组
授权组权限
授权许可
授权用户
授权用户组
授权用户用户权限
书店_书
中国_出版商
django_admin_log
django_content_type
姜戈迁移
django_session
-
一组12行(0.00秒)此时的数据库应该没有中国_出版商数据表,不知道哪里出错了,这种情况和姜戈在0001迁移文件里记录的情况完全不同,所以我果断将其删除!
mysql drop table china _ publisher
查询正常,0行受影响(0.03秒)一般情况下,还是不要随便删表,要不然很容易出现混乱。
现在,我们把0001以上的记录文件全部删除:
并再次进行迁移操作
f:\我的工作室\ python工作室\山羊主教。project 01 \ Django \我的网站_ db python manage。py ma
移民
"书店"的迁移:
书店\迁移\0002_auto_20200622_0213.py
-创建模型作者
-创建模型发布者
-从图书中删除菲尔德酒吧
-将字段出厂价添加到帐簿
-将现场价格添加到帐簿中
-创建模型合作伙伴
f:\我的工作室\ python工作室\山羊主教。project 01 \ Django \我的网站_ db python manage。py mi
壁炉
要执行的操作:
应用所有迁移:管理、验证、书店、内容类型、会话
运行迁移:
申请书店。0002_auto_20200622_0213.好迁移成功!
查看一下数据表:
关系型数据库显示表格;
-
Tables_in_mywebdb
-
授权组
授权组权限
授权许可
授权用户
授权用户组
授权用户用户权限
书店_作者
书店_书
书店_合作伙伴
中国_出版商
django_admin_log
django_content_type
姜戈迁移
django_session
-
一组14行(0.00秒)
MySQL select * from China _ publisher;
空集(0.00秒)
MySQL select * from书店_ book
- - - -
id title exfacPrice price
- - - -
1 Djangoweb开发实战 0.00 0.00
2 python 0.00 0.00
3 R 0.00 0.00
5 算法 0.00 0.00
6 集体智慧编程 0.00 0.00
- - - -
一组5行(0.00秒)
这时,我们在书模型类中再加入一个字段酒馆,并与出版者模型类进行一对多关联:
从django.db导入模型
#在此创建您的模型。
类发行者(模型。型号):
名称=型号CharField(出版社名,max_length=50,null=True)
书号=型号PositiveIntegerField(初版书籍总量,默认值=0)
电话=模型CharField(联系电话,max_length=11,null=False)
类别元:
db_table=china_publisher
verbose_name=ChinaPublisher
verbose _ name _ plural=中国出版商
def __str__(self):
string=出版社:%s % (self.name)
返回字符串
课堂用书(模型。型号):
标题=模型CharField(书名,max_length=30)
exfacPrice=型号100000分米菲尔德(’出厂价,
max_digits=6,decimal_places=2
默认值=0)
价格=车型100000分米菲尔德(’售价,
max_digits=6,decimal_places=2
默认值=0)
发布=模特ForeignKey(Publisher,on_delete=models .级联,空=真)
def __str__(self):
string=书名:%s % (self.title)
返回字符串
类作者(模型。型号):
名称=型号CharField(姓名,max_length=30,null=False,
unique=True,db_index=True)
年龄=模特IntegerField(年龄,null=False,
默认值=1)
邮件=模特。电子邮件字段(邮箱,null=True)
def __str__(self):
string=姓名:{}, 年龄:{}.格式(自我姓名,自我年龄)
返回字符串
班级伙伴(模特。型号):
作家伴侣模型类
名称=型号CharField(姓名最大长度=50)
年龄=模特IntegerField(年龄,null=False,
默认值=1)
作者=模特OneToOneField(作者,on_delete=模特。级联)
再次执行迁移操作:
f:\我的工作室\ python工作室\山羊主教。project 01 \ Django \我的网站_ db python manage。py进行迁移
"书店"的迁移:
书店\迁移\0003_book_pub.py
-将菲尔德酒吧添加到图书中
f:\我的工作室\ python工作室\山羊主教。project 01 \ Django \我的网站_ db python manage。py迁移
要执行的操作:
应用所有迁移:管理、验证、书店、内容类型、会话
运行迁移:
应用宝书店。0003 _图书_出版.好迁移成功!
再次查看书店_书数据表:
MySQL select * from书店_ book
- - - - -
id 标题工厂交货价格价格发布标识
- - - - -
1 Djangoweb开发实战 0.00 0.00 NULL
2 python 0.00 0.00 NULL
3 R 0.00 0.00 NULL
5 算法 0.00 0.00 NULL
6 集体智慧编程 0.00 0.00 NULL
- - - - -
一组5行(0.00秒)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。