2.4 模型迁移
在数据库中生成对应的表。
2.4.1 生成迁移文件
生成迁移文件,不会在数据库中生成表,只会创建一个数据表和模型的对应关系。
生成迁移文件,使用如下指令:
python manage.py makemigrations
# 外键约束:book # 外键要指定所属的模型类 book = models.ForeignKey(BookInfo, on_delete=models.CASCADE)
报错:
TypeError: __init__() missing 1 required positional argument: 'on_delete'
原因:
django升级到2.0之后,表与表之间关联的时候必须写"on_delete"参数,否则会报错
来源:【异常】TypeError: init() missing 1 required positional argument: ‘on_delete‘
使用的是Django2.0以上的版本,在添加实体外键的时候,2.0以前的版本是默认级联删除的,在2.0以上的版本要加上:
models.ForeignKey(“表名”, on_delete=models.CASCADE)
之后再创建迁移文件,执行命令行就不会报错了
来源:Django运行创建迁移文件报错:TypeError: init() missing 1 required positional argument: ‘on_delete’
子应用没有进行注册,生成迁移文件会报错:
2.4.2 迁移
将创建的数据表和模型的对应关系迁移到数据库中。
迁移,使用如下指令:
python manage.py migrate
2.4.3 查看数据库
其他的表为系统自动创建。
3. Django 自带的后台
3.1 访问后台
运行项目
访问 Django 自带的后台
http://127.0.0.1:端口号/admin http://127.0.0.1:9090/admin
3.2 修改后台页面的显示语言
3.3 时区设置
3.4 创建后台管理员
终端运行如下命令:
python manage.py createsuperuser • 1
3.5 登录后台
3.6 注册模型类
3.7 通过后台向数据库中增加数据
3.8 修改后台模型类中对象的显示
在对应的模型类中重写__str__()
方法
# 模型类:BookInfo class BookInfo(models.Model): # 书籍名称字段:name # 字段的类型为 字符类型字段(CharField) 最长的长度为10 name = models.CharField(max_length=10) def __str__(self): return self.name