继承
模型之间的继承可以通过两种方式完成:
- 一个常见的抽象类(参见模型混合示例)
- 具有多个表的通用模型
多表继承将为公共字段创建一个表,为每个子模型示例创建一个表:
from django.db import models
class Place(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=80)
class Restaurant(Place):
    serves_hot_dogs = models.BooleanField(default=False)
    serves_pizza = models.BooleanField(default=False)
将创建 2 个表,一个用于 Place,一个用于 Restaurant,其中一个隐藏的 OneToOne 字段用于 Place 用于公共字段。
请注意,每次获取 Restaurant 对象时,都需要对 places 表进行额外查询。