modelform 对象和model之间的关系
一、modelform的每一个标签对象
for bound_field in form: print('form.model',form.Meta.model) # for 循环得到每一个标签对象
#print('bound_field',type(bound_field))
# bound_field <class 'django.forms.boundfield.BoundField'>
# from django.forms.boundfield import BoundField
# 看一下内部封装的方法
# form.Meta.model 自身的表对对象
# self.form = form form对象
# self.field = field 字段对象
# 可以判断 一对多,一对一,多对多 isinstance( bound,field.field ModelChoiceField)
# 判断出满足条件后 可取到以下:
# form.Meta.model._meta.get_field(bound_field.name).rel.related_name 反向查询名称related_name
# self.name = name 字段名称
# to_field_name 关联字段
# limit_choices_to 关联表的取值范围 取不到为None
# bound_field.field.queryset.model 关联的表对象
# self.html_name = form.add_prefix(name)
# self.html_initial_name = form.add_initial_prefix(name)
# self.html_initial_id = form.add_initial_prefix(self.auto_id)
二、model增加的一个对象
obj = form.save()
for obj_related_field in obj._meta.related_objects:
# 得到每一个关联此表的字段对象
_related_name=str(obj_related_field.related_name) # 取到反向查询的字段名
obj_related_field.field_name 取代关联字段 默认是id
model_name=obj_related_field.field.model #取到关联表的类名
_model_name=obj_related_field.field.model._meta.model_name #取到关联表的表名
obj_related_field.limit_choices_to # 取到自己的字段限制范围
print(_model_name,_related_name)
res = {"state":False,"pk": None, "text": None, "pop_id":None}
if related_name==_related_name and _model_name==current_model_name:
# 找打此时验证的是哪张表的基础上添加的自己。
print("limit_choices_to:",obj_related_field.limit_choices_to)
ret=self.model.objects.filter(pk=obj.pk,**obj_related_field.limit_choices_to) #根据自己的字段限制范围判断自己该不该出现在页面上。
modelform 对象和model之间的关系的更多相关文章
- 李洪强iOS开发之OC[018]对象和方法之间的关系
// // main.m // 18 - 对象和方法之间的关系 // // Created by vic fan on 16/7/14. // Copyright © 2016年 李洪强. A ...
- 二.OC基础--1,对象的存储细节,2,#pragma mark指令,3,函数和对象方法的区别,4,对象和方法之间的关系 ,5.课堂习题
1,对象的存储细节, 1. 当创建一个对象的时候:Person *p1 = [Person new],做了三件事情: 1,申请堆内存空间: 2,给实例变量初始化: 3,返回所申请空间的首地址; 2. ...
- ASP.NET-MVC中Entity和Model之间的关系
Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz ...
- JS高级---实例对象和构造函数之间的关系
实例对象和构造函数之间的关系: 1. 实例对象是通过构造函数来创建的---创建的过程叫实例化 2. 如何判断对象是不是这个数据类型? 1) 通过构造器的方式 实例对象.构造器==构造函数 ...
- Javascript 构造函数、原型对象、实例之间的关系
# Javascript 构造函数.原型对象.实例之间的关系 # 创建对象的方式 # 1.new object() 缺点:创建多个对象困难 var hero = new Object(); // 空对 ...
- JavaScript中的 原型 property 构造函数 和实例对象之间的关系
1 为什么要使用原型? /* * javascript当中 原型 prototype 对象 * * */ //首先引入 prototype的意义,为什么要使用这个对象 //先来写一个构造函数的面向对象 ...
- 【整理】JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系
#[整理]JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系 之间的关系
郭晨 软件151 1531610114 [整理]JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系 visio文件下载 概述 一个JavaEE的项 ...
- java设计模式、框架、架构、平台之间的关系
设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用.框架是模块级复用.架构是系统级复用.平台是企业应用级复用. 1.设计模式 为什么要先说设计模式?因为设计模式在 ...
随机推荐
- Python数据整合与数据准备-BigGorilla介绍
参考文档:http://www.biggorilla.org/zh-hans/walkt/ 一.前言 “根据访谈记录和专家估计,数据科学家将50%至80%的时间花在搜集和准备难以梳理的数字数据的琐碎工 ...
- [Python爬虫] 之十八:Selenium +phantomjs 利用 pyquery抓取电视之家网数据
一.介绍 本例子用Selenium +phantomjs爬取电视之家(http://www.tvhome.com/news/)的资讯信息,输入给定关键字抓取资讯信息. 给定关键字:数字:融合:电视 抓 ...
- Json杂谈系列------(一)初始json
1. JSON 是什么 JSON,全称是 JavaScript Object Notation,即 JavaScript 对象标记法.这是一种轻量级(Light-Weight).基于文本的(Text- ...
- 倍福TwinCAT(贝福Beckhoff)应用教程12.3 TwinCAT控制松下伺服 NC进阶
在前面一节,我们简单介绍了通过PLC+HMI实现完整控制松下伺服的上使能-运动,采集位置,速度等功能,这里我们会大量简化用到的贝福功能块(为了更加实用).首先依然是对单个轴的封装,我们之前的做法,例如 ...
- iOS怎样找到自己的沙盒
iOS怎样找到自己的沙盒 在ios开发我们会用到沙盒,因为自己对沙盒理解的不够,所以找不到沙盒文件在哪里,当然要知道路径了 比如我的路径 NSString* cachepath = [NSHomeDi ...
- Android Exception18(Stuido debug .....)
这个问题比较诡异,在用android-studio debug的时候,第一次能正常使用,但是后面就不知道是什么鬼,每次debug都冒出来这个. 之后,重新新建一个项目就好了
- Date日期类型转化成中文字符串
例子: select to_char(sysdate,'yyyy"年"mm"月"dd"日"') as nowYear from dual 结 ...
- ohasd failed to start: Inappropriate ioctl for device
今天同事在安装GI的时候出现故障.让我帮忙看一下. 以下记录例如以下: 问题现象: 在安装gi的时候运行root.sh报例如以下错误: Finished running generic part of ...
- Android ListView工作原理全然解析,带你从源代码的角度彻底理解
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44996879 在Android全部经常使用的原生控件其中.使用方法最复杂的应该就是 ...
- struts2中Action訪问servlet的两种方式
一.IoC方式 在struts2框架中,能够通过IoC方式将servlet对象注入到Action中.通常须要Action实现下面接口: a. ServletRequest ...