本文实例讲述了django框架面向对象ORM模型继承用法。分享给大家供大家参考,具体如下:
Django ORM对模型继承的支持,将python面向对象的编程方法与数据库面向关系表的数据结构结合的很巧妙。支持三种风格的模型继承。
1.抽象类继承:父类继承自models.Model,但不会在底层数据库中生成相应的数据表,父类的属性列存储在其子类的数据表中。
2.多表继承:多表继承的每个模型类都在底层数据库中生成相应的数据表管理数据。
3.代理模型继承:父类用于在底层数据库中管理数据表,而子类不定义数据列,只定义查询数据表的排序方式等元数据。
1.抽象基类继承举例如下:
from django.db import models class Message(models.Model): id = models.AutoField(default=0) content = models.CharField(max_length=100) user_name = models.CharField(max_length=80) pub_date = models.DateField() class Meta: abstract = True #证明该类是抽象基类 class Moment(Message): headline = models.CharField(max_length=50) LEVELS = ( ('1', 'Very Good'), ('2', 'Good'), ('3', 'Normal'), ('4', 'Bad'), ) class Coment(Message): level = models.CharField(max_length=50, choices=LEVELS, default=LEVELS[3])