Models(二)模型的迁移与继承

一、迁移过程原理
1.先写好models.py文件,通过python manage.py makemigrations生成迁移文件。每当模型更改后,都需要做迁移,在最新的迁移文件基础上生成新的迁移文件django默认记录模型的变化过程)
 
2.通过python manage.py migrate执行迁移文件。生成对应的数据库。
 
二、通过SQL语句生成模型
上面提到的生成表的方式都是Model->SQL(迁移models.py生成表)
除这种方式,django还支持SQL->Model的方式
1.写出构造表的SQL语句,然后运行,生成对应的表
 
2.执行python manage.py inspectdb,生成对应的python代码,复制到models.py即可
若想直接生成models.py文件,需要在后边加上目标文件名:python manage.py inspectdb > [app_name]/models.py
 
三、模型的继承
-models.py
Fresh继承自Student,拥有Student的全部属性(包括父类属性)。但是迁移时会创建Student模型,并创建一个外键到Fresh表(表中只有父表的外键和自己独有的字段)
 
-若不想生成父类模型,需要定义元信息的抽象属性
 class Meta:
        abstract = True
子模型迁移生成的表中直接包含父模型的字段
 

猜你喜欢

转载自www.cnblogs.com/xiaoqichaoren/p/12942130.html