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

       

  • 相关阅读:
    关于svcutil.exe
    为什么说上ERP找死?
    竞争软件微信公众号上线
    无需ORM的数据库
    日期格式化和计算工具
    数据格式化工具
    Redis集群安装
    guava入门学习3(集合工具)
    guava入门学习2(新集合)
    mac环境下基于jdk1.8,maven搭建dubbo,zookeeper入门小案例
  • 原文地址:https://www.cnblogs.com/huhuxixi/p/10727764.html
Copyright © 2020-2023  润新知