Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性。而可用的选项大致包含以下几类

abstract

这个属性是定义当前的模型是不是一个抽象类。所谓抽象类是不会对应数据库表的。一般我们用它来归纳一些公共属性字段,然后继承它的子类可以继承这些字段。

Options.abstract
如果abstract = True 这个model就是一个抽象类

app_label

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

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

db_table

db_table是指定自定义数据库表明的。Django有一套默认的按照一定规则生成数据模型对应的数据库表明。
Options.db_table
定义该model在数据库中的表名称
  db_table = 'Students'
如果你想使用自定义的表名,可以通过以下该属性
  table_name = 'my_owner_table'

db_teblespace

Options.db_teblespace
定义这个model所使用的数据库表空间。如果在项目的settin中定义那么它会使用这个值

get_latest_by

Options.get_latest_by
在model中指定一个DateField或者DateTimeField。这个设置让你在使用model的Manager上的lastest方法时,默认使用指定字段来排序

managed

Options.managed
默认值为True,这意味着Django可以使用syncdb和reset命令来创建或移除对应的数据库。默认值为True,如果你不希望这么做,可以把manage的值设置为False

order_with_respect_to

这个选项一般用于多对多的关系中,它指向一个关联对象,就是说关联对象找到这个对象后它是经过排序的。指定这个属性后你会得到一个get_xxx_order()和set_xxx_order()的方法,通过它们你可以设置或者回去排序的对象

ordering

这个字段是告诉Django模型对象返回的记录结果集是按照哪个字段排序的。这是一个字符串的元组或列表,没有一个字符串都是一个字段和用一个可选的表明降序的'-'构成。当字段名前面没有'-'时,将默认使用升序排列。使用'?'将会随机排列

  • ordering=['order_date'] # 按订单升序排列
  • ordering=['-order_date'] # 按订单降序排列,-表示降序
  • ordering=['?order_date'] # 随机排序,?表示随机
  • ordering=['-pub_date','author'] # 以pub_date为降序,在以author升序排列

permissions

permissions主要是为了在Django Admin管理模块下使用的,如果你设置了这个属性可以让指定的方法权限描述更清晰可读。Django自动为每个设置了admin的对象创建添加,删除和修改的权限。
permissions = (('can_deliver_pizzas','Can deliver pizzas'))

proxy

这是为了实现代理模型使用的,如果proxy = True,表示model是其父的代理 model

unique_together

unique_together这个选项用于:当你需要通过两个字段保持唯一性时使用。比如假设你希望,一个Person的FirstName和LastName两者的组合必须是唯一的,那么需要这样设置:
unique_together = (("first_name", "last_name"),)
一个ManyToManyField不能包含在unique_together中。如果你需要验证关联到ManyToManyField字段的唯一验证,尝试使用signal(信号)或者明确指定through属性。

verbose_name

verbose_name的意思很简单,就是给你的模型类起一个更可读的名字一般定义为中文,我们:
verbose_name = "学校"

verbose_name_plural

这个选项是指定,模型的复数形式是什么,比如:
verbose_name_plural = "学校"
如果不指定Django会自动在模型名称后加一个’s’

转载于:https://www.cnblogs.com/eric_yi/p/8039409.html

Django模型之Meta选项详解相关推荐

  1. Django模型层Meta内部类详解

    Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.以下对此作一总结: abstract      这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会对应 ...

  2. Django模型之Meta属性详解

    Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.而可用的选项大致包含以下几类 abstract 这个属性是定义当前的模型是不是一个抽象类.所谓抽象类是不会对应数据 ...

  3. django model对象修改_Django之Model的Meta选项详解

    Django默认生成的表名: 应用名小写_模型类名小写 可以通过在模型类中定义Meta类来修改表名: class Department(models.Model):""" ...

  4. W3C中meta标签详解

    2019独角兽企业重金招聘Python工程师标准>>> meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <meta ...

  5. pythondjango教程_Python 中Django安装和使用教程详解

    一.安装 一般使用cmd 安装就可以 手动安装通过下载方式 二.配置使用 1.通过cmd新建一个项目,我是在桌面新建 上面命令会在桌面新建pythonDjango文件夹,在里面会生成如下图两个文件 m ...

  6. SEO技巧:Meta标签详解

    网页设计:Meta标签详解 您的个人网站即使做得再精彩,在"浩瀚如海"的网络空间中,也如一叶扁舟不易为人发现,如何推广 个人网站,人们首先想到的方法无外乎以下几种: ●在搜索引擎中 ...

  7. 网页设计:Meta标签详解

    网页设计:Meta标签详解 很多人忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧! META标签是H ...

  8. meta标签详解(meta标签的作用)///////////////////////////转

    meta标签详解(meta标签的作用) 很多人却忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧 您的 ...

  9. [Dreamweaver教程]Meta标签详解

    [Dreamweaver教程]Meta标签详解 原作者:indian 出处:5D多媒体 发表时间:2004-12-8 关键词: 版权信息:传统媒体及商业网站禁止擅自转载:个人网站转载需经作者同意,并注 ...

最新文章

  1. 集群节点Elasticsearch升级
  2. Windows Server 2008中部署AD
  3. 第一个 Metro程序(空白应用程序)
  4. ASP.NET MVC中常用的ActionResult类型
  5. vsftpd FTP Server ‘ls.c‘ 远程拒绝服务漏洞(CVE-2011-0762)漏洞修复方案
  6. Jmeter生成自动化和性能多维度测试报告(性能指标和监听器图表)
  7. 局域网聊天老大——飞鸽传书
  8. mysql_query 变量,在mysql_query字符串中使用PHP变量
  9. A股开盘:深证区块链50指数涨0.91%,美邦服饰涨停
  10. git 服务器上新建项目
  11. 逻辑地址、物理地址、线性地址、虚拟地址、段基地址偏移地址的联系和区别
  12. 译:谷歌OKR指导手册(全文)
  13. android partition tool apk,分区修复工具 MiniTool Partition Recovery
  14. 苹果创建账号显示服务器出错,创建iCloud id 提示:无法创建
  15. 技术流 | 知乎高赞,最值得推荐的电影都有哪些?
  16. 企业网站优化用户体验以内容为主
  17. 求有10个整型元素的数组中最大元素及其下标。
  18. JVM中的-Xms -Xmx -XXnewSize -XXMaxnewSize -Xmn -XXPermSize -XXMaxPermSize区别介绍
  19. Dreamweaver试题及答案一
  20. 记手动迁移网站到Centos7、安装lnmp套装踩到的坑

热门文章

  1. 区块链入门与去中心化应用实战 之一 第2章 区块链技术的核心概念和原理
  2. foreach之引用的使用
  3. shiro、cas、pac4j 实现单点登陆
  4. Redis数据结构——链表-linkedlist
  5. 来聊一聊,Go 的相对路径问题
  6. IDEA中修改自动生成的Servlet模板,提高编码效率
  7. Python爬虫入门_之urllib2urllib
  8. Python入门1_数字表达式
  9. Redis数据结构之列表
  10. springbatch导出mysql数据到外部文件