Django(二十)model中的 class Meta

Posted xiangtingshen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django(二十)model中的 class Meta相关的知识,希望对你有一定的参考价值。

 

https://www.cnblogs.com/tongchengbin/p/7670927.html

 

class Main(models.Model):
    img = models.CharField(max_length=200) # 图片
    name = models.CharField(max_length=100) # 名称
    trackid = models.CharField(max_length=16) # 通用id
 
    class Meta:
        abstract = True        #抽象类
class MainWheel(Main):
    # 轮播banner
    class Meta:
        db_table = axf_wheel
class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()
 
    class Meta:
        ordering = [order_date]
        # 按订单升序排列

 

以上三种class Meta是比较常用的,所以大概回顾一下。查了一些资料,才勉强搞懂。首先class Meta做为嵌套类,主要目的是给上级类添加一些功能,或者指定一些标准。

    比如第一个abstract=True这个东东,是为了继承,将该基类定义为抽象类,即不必生成数据库表单,只作为一个可以继承的基类,把一些子类必须的代码放在基类,避免重复代码也避免重复录入数据库。大概是这么个意思吧?

   再比如db_table=‘xxxx‘这个东东更简单些,其实就是指定该类的数据库表单名字。当然如果不指定也没关系,Django会自动默认的按照一定规则生成数据模型对应的数据库表名。至于合不合你的意那就得看缘分了,所以自己指定往往比较好。

    又比如ordering=‘xxxxx’,是表示按照指定的字段进行数据库的排序。主要是为了好看好查找。你可以指定任意的表单名称或内容,数据库生成之后就会按照指定的列进行排序。还可以升序降序随机,唉反正挺复杂的。

以上是关于Django(二十)model中的 class Meta的主要内容,如果未能解决你的问题,请参考以下文章

Django学习Django model中的class Meta详解

Django学习Django model中的class Meta详解

Django model中的 class Meta 详解

Django model 中的 class Meta 详解

Django model中的 class Meta 详解

Python之路第二十二篇:Django之Model操作