您好,登錄后才能下訂單哦!
在Django中,模型繼承可以通過使用抽象基類或多表繼承來實現。
from django.db import models
class BaseModel(models.Model):
name = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
class ChildModel(BaseModel):
description = models.TextField()
在上面的示例中,BaseModel
是一個抽象基類,它定義了name
和created_at
字段。ChildModel
繼承了BaseModel
,并且還定義了一個description
字段。當遷移時,BaseModel
不會被創建為數據庫表,它只是被用作其他模型的基類。
from django.db import models
class BaseModel(models.Model):
name = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
class ChildModel(BaseModel):
description = models.TextField()
class Meta:
db_table = 'child_model'
在這個示例中,ChildModel
繼承了BaseModel
,并且定義了一個description
字段。當遷移時,Django會在數據庫中創建兩個表,一個是BaseModel
的表,另一個是ChildModel
的表。兩個表之間通過外鍵關聯起來,ChildModel
中會有一個指向BaseModel
的外鍵字段。
無論是使用抽象基類還是多表繼承,都可以實現模型的繼承功能。選擇哪種方式取決于具體的需求和設計。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。