Django模型繼承個人運用

2021-09-22 16:40:13 字數 825 閱讀 6832

django模型繼承個人運用

坑點:

不使用抽象模型,資料庫中會產生三張對應表(一對多關係表),那麼如果模型存在繼承的時候,父模型產生表對映,子模型對應的表會通過外來鍵和父表產生關聯從表外來鍵引用主表得主鍵

不能說從表外來鍵引用主表得主鍵就一定是模型繼承 因為一對一 一對多 都會引用主表得主鍵

關係型資料庫效能

資料量越大效能越低

關係越多越複雜越低效能越低

使用:

在父類的model的元資訊中新增 abstract=true

class meta:

abstract=true

抽象的模型不會在資料庫中產生表

子模型擁有父模型中的所有字段

eg:

class animal(models.model):

a_name = models.charfield(max_length=16)

class meta:

abstract = true

>class cat(animal):

c_eat = models.charfield(max_length=32)

>class dog(animal):

d_legs = models.integerfield(default=4)用文字

可能遇到問題:資料庫遷移表無法完成,解決方案:刪除遷移資料庫中的表,刪除專案目錄下的遷移生成檔案在migrations中。

Django模型的繼承

抽象模型繼承 abstract model 假如我們有如下兩個模型article 文章 和course 課程 模型。它們的模型中有很多共同的字段,比如作者 標題 建立日期和更新日期 這樣寫會造成大量的 重複,乙個更好的方式是提取兩個模型共同的字段建立乙個父類抽象模型 abstract model 再...

Django 三種模型繼承

父類繼承來自model.model,但不會在底層資料庫生成相應的資料表,父類的屬性列儲存在其子類的資料表中 作用 多個表若有相同的字段時,可以將這些字段統一定義在抽象類中 要求 class basemodel models.model creat time models.datetimefield ...

Django 教程 Django 模型

乙個django模組是內建的功能,django使用建立表,他們的田地,和各種約束。簡而言之,django models是與django一起使用的sql資料庫。sql 結構化查詢語言 很複雜,涉及許多不同的查詢,用於建立,刪除,更新或與資料庫有關的任何其他內容。django模型簡化了任務並將表組織到模...