繼承
模型之間的繼承可以通過兩種方式完成:
- 一個常見的抽象類(參見模型混合示例)
- 具有多個表的通用模型
多表繼承將為公共欄位建立一個表,為每個子模型示例建立一個表:
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 表進行額外查詢。