42)django-Model _meta API
一:Model _meta
API
模型_meta
API是Django ORM的核心。它使系统的其他部分(如查询,查询,表单和管理员)了解每个模型的功能。
API可以通过_meta
每个模型类的属性来访问,这是一个django.db.models.options.Options
对象的一个实例 。
它提供的方法可以用来:
- 检索模型的所有字段实例
- 按名称检索模型的单个字段实例
二:Model _meta常用方式
1)按名称检索模型的单个字段实例
Options.
get_field
(field_name)[source] ,回给定字段名称的字段实例。
field_name
可以是模型上字段的名称,抽象或继承模型上的字段,或指向模型的另一个模型上定义的字段。
在后一种情况下,field_name
将由related_name
用户定义或由Django本身自动生成的名称。
Hidden fields
不能被名字检索。
如果没有找到具有给定名称的字段, 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)检索模型的所有字段实例
Options.
get_fields
(include_parents = True,include_hidden = False)[source]-
返回与模型关联的字段的元组。
get_fields()
接受可以用来控制返回哪些字段的两个参数:include_parents
True
默认。递归地包含在父类上定义的字段。如果设置为False
,get_fields()
只会搜索直接在当前模型上声明的字段。直接从抽象模型或代理类继承的模型中的字段被认为是本地的,而不是父类。include_hidden
False
默认。如果设置为True
,get_fields()
将包含用于支持其他字段功能的字段。这也将包括任何有一个related_name
(如ManyToManyField
,或ForeignKey
)以“+”开头的字段。
>>> 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>)
42)django-Model _meta API的更多相关文章
- Django Model._meta API
Model._meta API是Django ORM的核心,它使得lookups.queries.forms.admin这些模块通过每个model类的_meta的属性可以了解每个model的情况. 1 ...
- Django Model field reference
===================== Model field reference ===================== .. module:: django.db.models.field ...
- 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在 ...
随机推荐
- SQL Server进阶 索引
create unique index 和create index 的区别? CREATE UNIQUE INDEX ProviderInfo_Id_uindex ON dbo.ProviderInf ...
- EL 快速开始
技术选型上,推荐使用EL表达式,少用不用taglib. 大趋势 前后端分离 mvc+mvvm ,使用[thymeleaf]和前端更好结合,也是springboot官方推荐的做法. [viewTicke ...
- 【SRM-09 B】撕书II
Description 琉璃手头有一黑一白两本魔法书,一本是<缟玛瑙的不在证明>,另一本是<白色相簿1.5>.传说同时打开这两本书会有奇怪的事情发生.琉璃打开一看,果然非常奇怪 ...
- 拦截对该服务器所有的http请求
一:拦截对该服务器所有的http请求. 在config 中加, <system.webServer> <modules> <add name="HttpAuth ...
- Simple Recurrent Unit,单循环单元
SRU(Simple Recurrent Unit),单循环单元 src/nnet/nnet-recurrent.h 使用Tanh作为非线性单元 SRU不保留内部状态 训练时,每个训练序列以零向量开始 ...
- struts2简单入门
框架是什么,框架有什么作用 框架 实现部分功能的代码. 作用 控制请求和响应. 相对于WEB项目的执行流程 struts2项目搭建流程 配置web.xml 配置前端控制器[核心控制器] ---一个fi ...
- bzoj3262: 陌上花开(CDQ+树状数组处理三维偏序问题)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3262 题目大意:中文题目 具体思路:CDQ可以处理的问题,一共有三维空间,对于第一维我们 ...
- 为什么HTTPS比HTTP安全,以及两者的优缺点
一.HTTPS简介 HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全:另一种就是确认网站的真实性. HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HT ...
- Javascript - ExtJs - 组件 - 分页
服务端只需要返回如下格式的字符串,ExtJs就可以解析并自动生成分页数据. , name: "sam" } ] } 准备: CREATE PROCEDURE [dbo]. ...
- 前端必备——js中前端与后台的数据交互全解
只要编程语言能够支持网卡端口的监听和发送,理论上都是可以实现服务器后台设计的.也因此造成了实现后台的语言偏多,而web前端语言以html/css/js为主.所以在这里我们不涉及后台的设计,只介绍在we ...