Django中的模型继承
生活随笔
收集整理的這篇文章主要介紹了
Django中的模型继承
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、使用最原始的方式繼承
class Animal(models.Model):name = models.CharField(max_length=20)age = models.IntegerField() class Cat(Animal):weight = models.IntegerField() class Dog(Animal):height = models.IntegerField()注意:繼承方式不是很合理,父類也會對應(yīng)一張表。?效率比較低。
默認(rèn)在父類中定義的字段會存在父類表中,子類的數(shù)據(jù)通過外鍵關(guān)聯(lián)父表中數(shù)據(jù),子類只有特殊的數(shù)據(jù)在子表中。
2、Django中的數(shù)據(jù)庫模塊提供了一個非常不錯的功能,就是支持models的面向?qū)ο?#xff0c;可以在Meta類中指定是否抽象,然后繼承。
class Animal(models.Model):name = models.CharField(max_length=20)age = models.IntegerField()class Meta():# 讓該類抽象,抽象的父類不會再生產(chǎn)數(shù)據(jù)表# 子類會繼承父類中的通用數(shù)據(jù),復(fù)制到子表中abstract = True class Cat(Animal):weight = models.IntegerField() class Dog(Animal):height = models.IntegerField()?
轉(zhuǎn)載于:https://www.cnblogs.com/Li-1198208544/p/9455239.html
總結(jié)
以上是生活随笔為你收集整理的Django中的模型继承的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 珂朵莉的约数(牛客练习赛9)
- 下一篇: Apache ActiveMQ 远程代码