python做为一门面向对象语音,其继承特性是做的非常好的。如果能在models定义中将一些通用字段放在父类中,子类直接继承,然后添加一些自己独有的字段,岂不是可以省很多创建模型的时间。这一篇我们就来看看这个问题。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
文章目录
纯语法定义继承
在models.py中创建如下People类做为一会要用的父类
class People(models.Model):
p_name = models.CharField(max_length=16)
p_sex = models.BooleanField(default=True)
然后创建两个子类American和Chinese继承自People
class American(People):
a_state = models.CharField(max_length=16)
class Chinese(People):
c_province = models.CharField(max_length=16)
按照正常逻辑,我们只想要American和Chinese这两张表,但是完成makemigrations和migrate以后和我们设想的不一样,一共出现了三张表,也就是说People表也被创建了。
而且在American和Chinese中都多了一个叫people_ptr_id的字段,查看DDL如下
create table Four_american
(
people_ptr_id int not null
primary key,
a_state varchar(16) not null,
constraint Four_american_people_ptr_id_733979de_fk_Four_people_id
foreign

最低0.47元/天 解锁文章
1379

被折叠的 条评论
为什么被折叠?



