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详解