Django Model._meta API
Model._meta API是Django ORM的核心,它使得lookups、queries、forms、admin这些模块通过每个model类的_meta的属性可以了解每个model的情况。
1. 字段访问API,使用名字检索一个model的字段实例
Options.get_field(field_name)
根据给出的field_name返回一个字段实例。field_name可以是model中的字段,抽象或者继承model的字段,或者指向一个model的另一个model上的字段,最后这种情况中的field_name是用户定义的related_name或者是Django自动产生的名字。
note:隐藏的字段不能通过名字检索。如果给出的字段名找不到,会抛出FieldDoesNotExist的错误。
- >>> from django.contrib.auth.models import User
- # A field on the model
- >>> User._meta.get_field('username')
- <django.db.models.fields.CharField: username>
- # A field from another model that has a relation with the current model
- >>> User._meta.get_field('logentry')
- <ManyToOneRel: admin.logentry>
- # A non existent field
- >>> User._meta.get_field('does_not_exist')
- Traceback (most recent call last):
- ...
- FieldDoesNotExist: User has no field named 'does_not_exist'
2. 检索一个model的所有字段实例
Options.get_fields(include_parents=True, include_hidden=False)
以元组的形式返回一个model的相关的所有字段。get_fields接收两个参数用来控制要返回哪些字段。
- >>> from django.contrib.auth.models import User
- >>> User._meta.get_fields()
- (<ManyToOneRel: admin.logentry>,
- <django.db.models.fields.AutoField: id>,
- <django.db.models.fields.CharField: password>,
- <django.db.models.fields.DateTimeField: last_login>,
- <django.db.models.fields.BooleanField: is_superuser>,
- <django.db.models.fields.CharField: username>,
- <django.db.models.fields.CharField: first_name>,
- <django.db.models.fields.CharField: last_name>,
- <django.db.models.fields.EmailField: email>,
- <django.db.models.fields.BooleanField: is_staff>,
- <django.db.models.fields.BooleanField: is_active>,
- <django.db.models.fields.DateTimeField: date_joined>,
- <django.db.models.fields.related.ManyToManyField: groups>,
- <django.db.models.fields.related.ManyToManyField: user_permissions>)
原文链接:https://docs.djangoproject.com/en/2.0/ref/models/meta/
Django Model._meta API的更多相关文章
- Django Model field reference
===================== Model field reference ===================== .. module:: django.db.models.field ...
- 42)django-Model _meta API
一:Model _meta API 模型_metaAPI是Django ORM的核心.它使系统的其他部分(如查询,查询,表单和管理员)了解每个模型的功能. API可以通过_meta每个模型类的属性来访 ...
- Django Model 定义语法
简单用法 from django.db import models class Person(models.Model): first_name = models.CharField(max_leng ...
- 模型 _meta API ( options )
模型 _meta API class Options[源代码] 模型 _meta API是Django ORM的核心.它使系统的其他部分(如查找,查询,表单和管理员)能够了解每个模型的功能. API可 ...
- 【转】Django Model field reference学习总结
Django Model field reference学习总结(一) 本文档包含所有字段选项(field options)的内部细节和Django已经提供的field types. Field 选项 ...
- tornado with MySQL, torndb, django model, SQLAlchemy ==> JSON dumped
现在,我们用torndo做web开发框架,用他内部机制来处理HTTP请求.传说中的非阻塞式服务. 整来整去,可谓之一波三折.可是,无论怎么样,算是被我做成功了. 在tornado服务上,采用三种数据库 ...
- Django编写RESTful API(一):序列化
欢迎访问我的个人网站:www.comingnext.cn 关于RESTful API 现在,在开发的过程中,我们经常会听到前后端分离这个技术名词,顾名思义,就是前台的开发和后台的开发分离开.这个技术方 ...
- Django编写RESTful API(四):认证和权限
欢迎访问我的个人网站:www.comingnext.cn 前言: 按照前面几篇文章里那样做,使用Django编写RESTful API的基本功能已经像模像样了.我们可以通过不同的URL访问到不同的资源 ...
- Django学习之四:Django Model模块
目录 Django Model 模型 MODEL需要在脑子里记住的基础概念 区分清楚,必须不能混淆的 class Meta 内嵌元数据定义类 简单model创建实例 数据源配置 接着通过models在 ...
随机推荐
- Hadoop生态圈-Kafka配置文件详解
Hadoop生态圈-Kafka配置文件详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.默认kafka配置文件内容([yinzhengjie@s101 ~]$ more /s ...
- Linux shell 日期,时间相关的命令
在shell脚本中,经常要用到跟获取日期相关的东西,这里记录一下Linux shell 获取日期的方法 获取当前日期:today=`date +"%Y-%m-%d"` 获取昨天的日 ...
- np.random.rand均匀分布随机数和np.random.randn正态分布随机数函数使用方法
np.random.rand用法 觉得有用的话,欢迎一起讨论相互学习~Follow Me 生成特定形状下[0,1)下的均匀分布随机数 np.random.rand(a1,a2,a3...)生成形状为( ...
- CM记录-集群运行故障修复记录
集群运行故障分析(空间不足.时钟误差.状态不良) 调整空间.同步时间.重启 修复后: 各个数据节点容量分布情况
- Solr记录-solr基础内容
Solr架构(体系结构) 在本章中,我们将讨论Apache Solr的架构. 下图显示了Apache Solr的体系结构的框图. Solr架构 - 构件块以下是Apache Solr的主要构建块(组件 ...
- pgadmin导出excel
生成导入sql 第一行公式:="insert into province(code,name) values("&A2&",'"&B2& ...
- html5 canvas画布上合成
source-over 默认.在目标图像上显示源图像. source-atop 在目标图像顶部显示源图像.源图像位于目标图像之外的部分是不可见的. source-in 在目标图像中显示源图像.只有目标 ...
- centos安装lrzsz
yum -y install lrzsz 使用rz打开上传框
- 五行代码终极完美解决从IE6到Chrome所有浏览器的position:fixed;以及闪动问题
这个方法其实已经使用很久了,之前主要在嵌入式WebQQ等产品中用过,现在拿出来分享一下吧,是目前最简洁的方式来实现ie6的position:fixed; 失效bug,以及的其他方法的闪动问题,CSS代 ...
- 20155321 2016-2017-2 《Java程序设计》第五周学习总结
20155321 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 异常处理 Java提供特有的语句进行处理 try { 需要被检测的代码; } cat ...