django中的modelform和modelfoemset
一. ModelForm
ModelForm是根据Model来定制的Form
二. ModelForm的创建
from django import forms
from app import models class MyModelForm(forms.ModelForm):
class Meta:
model = models.Book
fields = "__all__"
labels = {
"title":"书名",
"price":"价格"
}
widgets{
"password":forms.widgets.PasswordInput(attt={"class":"form-control"}),
}
三. class Meta中常用的参数
model = models.Book 对应models中的类
fields = "__all__" 列出所有的字段
exclude = None 排除的字段
labels = None 提示信息
widgets = None 自定义插件
error_messages = None 自定义错误信息
四. ModelForm的使用
1. 创建modelform对象
form_obj = MyModelForm()
form_obj = MyModelForm(instance=obj) 如果需要对form进行有关操作就传进去一个实例对象
2. 编辑操作
form_obj = MyModelForm(request.POST,instance=obj)
form_obj.save() 这样,就会对实例对象进行操作
五. 对ModelForm显示的字段做出限制
1. 获取字段和字段对象
self.fields 获取有序字典,(字段,字段对象)
2. 对字段显示做出限制
self.fields["key"].choices 获取可供选择的迭代器列表,重新定义这个值,就可以对字段的显示做出限制
self.fields["key"].choices=[()] 这个值是列表中放着元组的数据
3. self.instance的操作
在实例化modelform对象的时候,instance=obj这个参数传的,这个obj是个类对象
在modelform中的Meta中,可以使用self.instance对字段的显示进行限制
六. modelformset的使用
1. 导入modelformset_factory模块
rom django.forms import modelformset_factory
2. 创建一个FormSet类
FormSet = modelformset_factory(models,form,extra=0) # 第一个参数是表的models,第二个参数是表的forms,extra是额外多几行
3. 实例化这个类
formset = FormSet(queryset=需要处理的queryset数据)
4. html渲染的时候
1. 给每个form都加上{{ formset.id }}
2. 在form表单中加{{ formsets.management_form }}
3. 展示字段
formset.字段 是带有input框的select
formset.instance.字段 拿到的是数据源,没有select框
django中的modelform和modelfoemset的更多相关文章
- Django中使用ModelForm实现Admin功能
接上一篇<Django中使用Bootstrap> ModelForm 可以将数据库中的信息展示在一个表中,因此我们在查询数据库信息时可以使用ModelForm在前端展示查询到的信息. 在上 ...
- Django中的ModelForm与Form
django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm. 关于django中的表单系统有两种: 基于django.forms.Form 基于dj ...
- Django中ModelForm应用
Django中ModelForm的应用 在传统中Form提交的POST的数据在服务器端获取时将不得不一一获取并验证数据的可靠性,但是使用django提供的Form时可简化该过程并提供相应的验证,同时D ...
- Django中Model-Form验证
Django中Model-Form验证 class UserType(models.Model): caption=models.CharField(max_length=32) class User ...
- django中ModelForm save方法 以及快速生成空表单或包含数据的表单 包含错误信息
django中ModelForm学习系列一~save方法 Model代码 from django.db import models # Create your models here. class P ...
- Django基础之forms组件中的ModelForm组件
Django的model form组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样 ...
- Django 中 ModelForm 的使用
定义 ModelForm 定制 ModelForm Meta 在 Form 中另外定义 Field 值得一提的一些 Field 转化 AutoField BooleanField ForeignKey ...
- Django中ModelForm详解
1.ModelForm组件介绍:这个组件的功能就是把model和form组合起来 2.ModelForm的使用 1.首先需要导入ModelForm from django.forms import M ...
- Django中的Form表单
Django中已经定义好了form类,可以很容易的使用Django生成一个表单. 一.利用Django生成一个表单: 1.在应用下创建一个forms文件,用于存放form表单.然后在forms中实例华 ...
随机推荐
- Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)
Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea ...
- vue组件is属性详解
查看官网对is属性的讲解,请移步:vue.js 本文参考资料 在vue.js组件教程的一开始提及到了is特性 下面是官网对is属性使用的说明: 组件功能是vue项目的一大特色.组件可以扩展html元素 ...
- Python创建随机用户名密码并存放于Access数据库
利用random库随机生成4到32位包含字母跟数字的用户名密码,利用win32com库连接到access数据库并写入table,要更改创建的用户名密码数量修改18行代码的数字即可. import wi ...
- 一个box四周边框阴影
实现效果如图: 代码如下: .section { margin: 20upx 30upx; padding: 40upx; border-radius: 6px; border-top: #0670C ...
- 基于WebGL架构的3D可视化平台—实现小车行走路线演示
小车行走路线演示New VS Old 刚接触ThingJS的时候,写的一个小车开进小区的演示,今天又看了教程中有movePath这个方法就重新写了一遍,其中也遇到了一些问题,尤其突出的问题就是小车过弯 ...
- linux下的dhcp服务器实现
一.得到udhcpd(udhcp服务端): 1.解压busybox 2.配置busybox Networking Utilities——> [*] udhcp server(udhcpd) [* ...
- Django 日志输出及打印--logging
Django使用python自带的logging作为日志打印工具. logging是线程安全的,主要分为4部分: Logger 用户使用的直接接口,将日志传递给Handler Handler 控制日志 ...
- IIS的UrlRewrite模块
以前在webform中重写URL是在Global.asax中的Addplication_BeginRequest事件中写代码进行跳转 今天介绍使用IIS提供的UrlRewrite模块实现URL重写 首 ...
- java表达式中运算符优先级
运算符优先级:运算符*和/(以及%)的优先级高于+和-(优先级越高,越早运算) 在逻辑运算符中,!拥有最高优先级,之后是&&,接下来是||. 一般来说,相同优先级的运算符的运算顺序是从 ...
- 用eclipse创建动态web项目手动生成web.xml方法
建一个web项目,后来在用到web.xml文件时,才发现项目创建时没有自动创建web.xml文件. 在创建的项目上单击右键,然后单击java EE Tools下的用红线圈住的地方,然后查看你的WEB- ...