模型继承
class Author(models.Model):
name=models.CharField(max_length=100)
class Meta:
abstract=True
class Book(Author):
title=models.CharField(max_length=100)
数据库里将只有一张表——Book,它有两个字段name,title.
class Author(models.Model):
name=models.CharField(max_length=100)
#class Meta:
# abstract=True
class Book(Author):
title=models.CharField(max_length=100)
这个model和上一个唯一的区别在于没有Meta类,这样会生成两张表。
Author拥有完整的django模型,可以正常实例化,同时还能把自己的属性借给子类。其实,这是通过在父类和子类中实现了一个OneToOneField关系。
所以Book的数据分为两部分,一部分在Author中,另外一部分在Book中。
注意:这种方法带来的一个缺点就是如果两边都定义了Meta类,可能会产生冲突,因为他们同时集成了这两个Meta。