抽象基类

当你想将一些共有字段放进一个 model 的时候,就可以用到抽象化类。

编写完基类之后,在 Meta 类中设置 abstract=True ,这个模型就不会被用来创建任何数据表。它可以被其他 model 用作基类,它的字段将被加入那些子类中。

注意:抽象基类和它的子类不能有相同的字段名,否则将会出现 error(并且 Django 将抛出一个 exception)。

一个例子:

from django.db import models

class CommonInfo(models.Model):
    name = models.CharField(max_length=100)
    age = models.PositiveIntegerField()

    class Meta:
        # 设置为抽象基类
        abstract = True

class Student(CommonInfo):
    home_group = models.CharField(max_length=5)

Student 模型将有三个字段:name, age 和 home_group。CommonInfo 模型无法像一般的 Django 模型一样使用,不会生成一张数据表或者拥有一个管理器,并且不能实例化或者直接储存。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • OC中没有抽象基类和接口的存在,而是使用的协议。作为C面向对象化的语言,肯定具备OOP的绝大多数的卖点。 先说说抽...
    Mr_Baymax阅读 8,117评论 0 0
  • Django Model 定义语法 版本:1.7主要来源:https://docs.djangoproject.c...
    罗田阅读 31,186评论 2 42
  • 抽象基类 最开始的时候觉得有没有什么办法可以使得oc中也能够有抽象基类,于是想了很多办法,比如说断言和异常,但是感...
    蔡俊宇阅读 8,835评论 1 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,749评论 18 399
  • 一 公交车快要到站的时候,坐在身旁的一个的小姑娘越过我,缓缓走到车门前等待下车,我抬起头打量一番,她有一点点胖,男...
    荔枝土豆阅读 2,372评论 0 0

友情链接更多精彩内容