标签:
一.模型继承
1.抽象基类继承:
抽象基类:
抽象基类主要是作为一个信息集合,用在许多模型拥有共同信息的场合,本质上只是一个存储信息的容器,数据库中不创建表结构,不能单独使用,子类通过继承来获得父 亲基类的字段和元类型数据,通过设置Meta类的abstract=True属性来声明为抽象基类,否则,不会自动变为抽象基类,现举例如下:
1 from django.db import models 2 3 class CommonInfo(models.Model): 4 name = models.CharField(max_length=100) 5 age = models.PositiveIntegerField() 6 7 class Meta: 8 abstract = True #声明为抽象基类 9 10 class Student(CommonInfo): #继承了基类的字段属性 11 home_group = models.CharField(max_length=5)
属性继承:内部元类Meta
若子类没有声明自己的内部元类,它会继承父类的Meta属性,若子类想要使用扩展父类的Meta属性,可以子类化父基类的Meta属性,举例如下:
1 from django.db import models 2 3 class CommonInfo(models.Model): 4 # ... 5 class Meta: 6 abstract = True 7 ordering = [‘name‘] 8 9 class Student(CommonInfo): 10 # ... 11 class Meta(CommonInfo.Meta): #子类化父亲的Meta属性 12 db_table = ‘student_info‘
抽象基类中外键和多对多关系字段中的related_name选项的注意事项:
理解的有点模糊,待写。
标签:
原文地址:http://www.cnblogs.com/chzb/p/4889297.html