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在 ...
随机推荐
- Java体验的重点难点-----总结
1.关于JVM原理:http://www.cnblogs.com/zhanglei93/p/6590609.html 2.关于垃圾收集机制:http://www.cnblogs.com/zhangle ...
- python的面向对象-面向对象设计
1.面向对象设计 def school(name,addr,type):#定义一个大函数的作用就是不能让狗调用学校的方法 #学校动作 def kaoshi(school): print("[ ...
- MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot)
MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是快照卷 如上图所示,原卷和快照卷可以不一样大,因为 ...
- protobuf与json相互转换的方法
google的protobuf对象转json,不能直接使用FastJson之类的工具进行转换,原因是protobuf生成对象的get方法,返回的类型有byte[],而只有String类型可以作为jso ...
- bzoj千题计划211:bzoj1996: [Hnoi2010]chorus 合唱队
http://www.lydsy.com/JudgeOnline/problem.php?id=1996 f[i][j][0/1] 表示已经排出队形中的[i,j],最后一个插入的人在[i,j]的i或j ...
- Mac下安装zsh(Oh My ZSH)的shell,替代原有的bash
说明:一开始装zsh我是拒绝的,因为这个东西装简单,卸载很难,并且装了之后默认Shell的配置文件不能用了,比如~/.bashrc这些.所以在装的时候要再三考虑好! 官网:http://ohmyz.s ...
- Asp.net 子web application的Session共享
需求提出: 网站: 父Web Application: http://www.test.com/ 子Web Application 1: http://www.test.com/child1 子Web ...
- PHP删除数组中空值
array_filter 函数的功能是利用回调函数来对数组进行过滤,一直都以为用回调函数才能处理, 却没有发现手册下面还有一句,如果没有回调函数,那么默认就是删除数组中值为false的项目 代码: ...
- CSS3 响应式布局: @media (min/max-width:***) @font-face
响应式布局 responsive design @media 属性 bootstrap css 分析: @media (min-width:768px){ body{***} } use @medi ...
- [转]GCC系列: __attribute__((visibility("")))
在 objc-api.h 里面有很多关于__attribute__ 的定义. 例如 #if !defined(OBJC_VISIBLE) # if TARGET_OS_WIN32 # if defin ...