Django中的class Meta知识点

52 篇文章 8 订阅

 

今天来回顾一下Django中model的class Meta


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 到你的 model 完全是可选的。以后用到什么再查吧,太复杂了。我学习的不好,尽量遇到什么就搞懂什么吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络毒刘

授人玫瑰,手有余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值