欢迎来到夜的世界

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生.料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。
扩大
缩小

模型层的Meta选项详解

       一 . 模型层的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 

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

  如果一个model没有定义在默认的model.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/

 

posted on 2018-12-23 18:30  二十四桥_明月夜  阅读(428)  评论(0编辑  收藏  举报

导航