zoukankan      html  css  js  c++  java
  • Django

    一、模型层的Meta选项详解

      Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性。使用方法及参数解释如下:

    class Book(models.Model):
          nid=models.AutoField(primary_key=True)
          title=models.CharField(max_length=32)
          price = models.DecimalField(max_digits=5, decimal_places=2)
    
    
          def __str__(self):
              return self.title
        
          class Meta:
              app_label = "app02"
              db_table = "book"
              unique_together = ["title", "price"]
              verbose_name = "书籍"
              ordering = ["price"]

    1、app_label

      这个选项只在一种情况下使用,就是你的模型类不在默认的应用程序包下的models.py文件中,这时候需要指定你这个模型类是哪个应用程序的。

      如果一个model没有定义在默认的models.py,例如如果你的app的models在myapp.models子模块下,你必须定义app_label让Django知道它属于哪一个app,如下:

     app_label = 'myapp'

    2、db_table

      db_table是指定自定义数据库表名的。

      为了节省时间,Django有一套默认的按照一定规则(应用名_模型类名小写)生成数据模型对应的数据库表名。我们可以通过db_table自定义该model在数据库中的表名称,如下:

    db_table = 'mytable'

    3、ordering

      对象的默认顺序,用于获取对象列表时。

      其值是一个元组或字符串和/或查询表达式列表。每个字符串都是一个带有可选“ - ”前缀的字段名称,表示降序。没有前导“ - ”的字段将按升序排序。

      ordering = ['pub_date']  # 表示要按pub_date字段升序排序
      ordering = ['-pub_date']  # 要按pub_date降序排序
      ordering = ['-pub_date', 'author']  ?# 要按pub_date降序排序,然后按author升序排序

    4、unique_together

      表示约束联合唯一字段,即一起使用的字段名称集必须是唯一的。

    5、verbose_name

      对象的可读名称,单数,如果没有给出,Django将使用类名小写:即CamelCase变为camelcase。

    更多Meta信息参见Django文档:https://docs.djangoproject.com/zh-hans/2.0/ref/models/options/

  • 相关阅读:
    Sort
    MyOD
    Linux C语言编程基础(必做)
    团队作业(一):团队展示
    2.3.1测试
    《Unix/Linux系统编程》第四章学习笔记
    课堂测试2
    课堂测试
    第三章 Unix/Linux进程管理学习笔记
    团队作业(二):需求分析
  • 原文地址:https://www.cnblogs.com/wxj1129549016/p/10032196.html
Copyright © 2011-2022 走看看