开发系统时若在多个模型类中存在共同的数据项,那么可以将这些多次出现的数据项放在一个公共类中,使该类继承于models.Model类,而其他模型类继承于这个父类。但由于我们不需要这个公共类在运行时创建数据表,所以设置abstract
为True
,将该父类定义为抽象类。
如下,我们举了一个例子:在课程表中除了课程名之外还需要定义一个数据添加时间
数据项,除了课程表之外的其他表也都需要这个数据项,因此创建BaseModel抽象类包含该数据项,使其他需要该数据项的实体模型类继承于他。
-
创建父类模型
class BaseModel(models.Model):"""用于存放多个模型共用的数据列,且不生成该类的数据表"""add_time = models.DateTimeField(default=datetime.now, verbose_name="数据添加时间")class Meta:# 防止父类建表abstract = True
-
继承该类
class Course(BaseModel):"""课程类模型"""name = models.CharField(max_length=50, verbose_name="课程名")class Meta:verbose_name = "课程信息"verbose_name_plural = verbose_nameclass __str__(self):return self.name # 在print(实例)的时候返回你指定的字符串
本文链接:https://my.lmcjl.com/post/13423.html
展开阅读全文
4 评论