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/

  • 相关阅读:
    P4718 [模板]Pollard-Rho算法
    python爬虫模板
    Codeforces1248F. Catowice City
    P3980 [NOI2008]志愿者招募 (费用流)
    P2805 [NOI2009]植物大战僵尸 (拓扑排序 + 最小割)
    P3157 [CQOI2011]动态逆序对
    P2634 [国家集训队]聪聪可可 (点分治)
    HDU6703 array (线段树)
    Codeforces750E. New Year and Old Subsequence (线段树维护DP)
    Codeforces301D. Yaroslav and Divisors
  • 原文地址:https://www.cnblogs.com/wxj1129549016/p/10032196.html
Copyright © 2011-2022 走看看