zoukankan      html  css  js  c++  java
  • Django model 中meta options之 abstract

    当abstract=True时,这个model就变成了abstrct base class,那这个基类有什么特性呢?

    当某一model中设置了abstract=True时,就会使该model中的字段都不会产生对应的表,而是可以作为基类加入到其他model中

    那有什么用呢?

    有时多个model有些相同的字段,这样很浪费时间,而且重复本身也不利于代码简洁。好该abstract来了

    看官例:

    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 model就有三个字段分别为:name, age, home_group,其中前两个继承自abstract 基类。同样,这个abstract base class又可以继承另一个基类。

    注意:

    commonInfo基类不能当作普通的model来使用。同样abstract base class 也有一此无法设置的属性,例如:db_table,即表,很明显,你不会想继承了abstract 基类的model都用一个表。

  • 相关阅读:
    文件读写,函数,元组和集合
    Python列表,字典和字符串操作
    linux grep程序输出 文本过滤
    prj坐标转换
    ubuntu 分卷解压中文乱码
    利用ssh 删除远程服务器文件
    git 提交
    linux 命令scp
    osgEarth编译——以VS2012为例
    GDAL2.0编译——32位和64位
  • 原文地址:https://www.cnblogs.com/Andy963/p/5793534.html
Copyright © 2011-2022 走看看