Django From表单定制
参考文档:
Forms
The Forms API
Working with forms
一、简单的Form表达定制
1)首先我们得定制Form表单类,下面我们创建一个简单的类:
class BookForm(forms.Form):
bookname = forms.CharField(max_length=10)
publish_date = forms.DateField()
2)在视图中引用:
def book(request):
#Froms将会是一个html实例
Froms = forms.BookForm()
return render(request,"app01/book.html",{"bk":Froms})
3)我们再定制模板来接收Froms的值:
<div class="container">
<form class="form-horizontal" action="" method="post"> {{ bk }}
<input type="submit" value="commit">
</form>
</div>
这样当我们访问指定页面时,能看定制的Form表单:
按F12,再查看代码标签,这就是Froms实例化后的html代码:
二、forms表单属性设置:
class BookForm(forms.Form):
publish_id_choice = {
(0,u'a出版社'),
(1,u'b出版社'),
}
publish_id = forms.IntegerField(widget=forms.widgets.Select(choices=publish_id_choice,attrs={'class':'form-contorl'}))
bookname = forms.CharField(max_length=10,
min_length=5,
error_messages={
'required':u'书名不能为空',
'max_length':u'不能多余10个字',
'min_length':u'不能少于5个字',
},
widget=forms.TextInput(attrs={'class':'form-contorl','palceholder':u'标题不少于5字'}))
publish_date = forms.DateField()
如上,我们可以设置最大最小长度,错误消息,自定义select,设置html标签的class属性值,生成的html源代码如下:
三、ModelForm
根据model自动生成form表单:
def bookmodel(request):
if request.method == 'GET':
Form = forms.BookModelForm()
elif request.method == 'POST':
Form = forms.BookModelForm(request.POST)
if Form.is_valid():
form_data = Form.cleaned_data
print(form_data)
Form.save()
return render(request,'app01/book.html',{"bk":Form})
生成的前端样式 , HTML 取表单数据{{ bk }} :
Form.save()方法能直接保存提交的数据到数据库。
其他方法去表单数据:
{% for i in bk %}
{{ i.label_tag}}
{{ i }}
{% endfor %} <hr> {% for i in bk %}
{{ i.label}}
{{ i }}
{% endfor %} <hr> {% for i in bk %}
{{ i.name}}
{{ i }}
{% endfor %}
# 前端生成的html源代码:
分别对应的前端样式,可以看到i.label_tag是取对应label的整个html值,i.label是取对应的label中的text值, i.name是取i的name的值,i.errors取出错误:
Django From表单定制的更多相关文章
- django创建表单以及表单数据类型和属性
08.15自我总结 关于django的表单不同关系之间的创建 一.不同关系之间的创建 1.一对一 举例 母表:userinfo id name age 1 张三 12 2 李四 58 字表:priva ...
- Django form表单 组件
目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...
- python运维开发(十九)----Django后台表单验证、session、cookie、model操作
内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- django from表单验证
django from表单验证 实现:表单验证 工程示例: urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from djan ...
- django Form表单的使用
Form django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form ...
- Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)
一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...
- Django form表单
Form介绍 之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来.与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入, ...
- django模型表单ModelForm
如果你正在构建一个数据库驱动的应用,那么你可能会有与Django的模型紧密映射的表单.比如,你有个BlogComment模型,并且你还想创建一个表单让大家提交评论到这个模型中.在这种情况下,写一个fo ...
随机推荐
- GTA4下载和玩教程
侠盗猎车4中文版.rar: 但是下载安装之后总是在刚开始开车的时候跳转到人物界面卡在那里无法进行下去,解决办法: 1.新建一个commandline.txt文件复制以下内容进去 -novblank - ...
- 【转】ANDROID自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
原文地址:http://blog.csdn.net/a396901990/article/details/36475213 简介: 在自定义view的时候,其实很简单,只需要知道3步骤: 1.测量—— ...
- Javascript中对数组处理的函数汇总
数组类型是JS中非常常见的类型,而且JS里的数组与其他多数语言中的数组有所不同,它的数组里每一项可以存放任何一种类型的数据,也就是说数组的第一项放的是字符串,第二项可以放数字或对象都没问题.而且JS中 ...
- 「CF932E」 Team Work
题目链接 戳我 题意 有\(n\)个箱子,从中选出\(i\)个箱子,然后把\(k\)个不同的球装在这\(i\)个箱子中,求方案数. 实际上这题就是求: \[ \sum_{i=1}^nc_n^i*i^k ...
- 类与类之间的两种关系------新标准c++程序设计
在c++中,类和类之间有两种基本关系:复合关系和继承关系. 复合关系也称为“has a”关系或“有”的关系,表现为封闭类,即一个类以另一个类的对象作为成员变量. 继承关系也称为“is a”关系或“是” ...
- IT职场中外企面试最爱提的问题
1.请介绍一下你自己. 这是外企常问的问题.一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有,其实,外企最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识 ...
- kali linux之手动漏洞挖掘二
漏洞挖掘原则/宗旨----所有变量,所有头(cookie中的变量),逐个变量删除 身份认证 常用若口令/基于字典的密码爆破/锁定帐号 信息收集(手机号,身份证,住址信息等等) 密码嗅探 会话sessi ...
- python wraps装饰器
这是一个很有用的装饰器.看过前一篇反射的朋友应该知道,函数是有几个特殊属性比如函数名,在被装饰后,上例中的函数名foo会变成包装函数的名字 wrapper,如果你希望使用反射,可能会导致意外的结果.这 ...
- 解决CentOS查询不到ip
问题:登陆操作系统,输入ip addr 也可以输入ifconfig查看ip,发现ens33目录中没有inet属性 解答:查看ens33的网卡配置: vi /etc/sysconfig/network- ...
- mysql 面试题
1.一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ? 2.Mysql的技术特 ...