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 ...
随机推荐
- 如何在DOS下以管理员身份执行命令?
原创 普通User的DOS窗口: 以管理员身份运行的DOS窗口: 转换(Windows10系统下): 13:11:55 2018-10-18
- svn下载安装
TortoiseSVN 下载地址:http://subversion.apache.org/packages.html#windows VisualSVN Server 下载地址:https://ww ...
- C#截取验证码图片
使用Graphics类中的DrawImage方法,这个方法有30种重载方式,这里只介绍一种,也是我认为最直观的一种,代码如下: using System.Drawing; namespace kq.U ...
- C#设计模式系列:适配器模式(Adapter Pattern)
一.引言 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用.但是新环境要求的接口是这些现存对象所不满足的.如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同 ...
- 端口以及服务常用cmd
netstat -ano 列出所有端口的情况 netstat -aon|findstr "49157" 查出特定端口的情况 ...
- vmware实现物理机和虚拟机复制粘贴
要实现物理机和虚拟机的复制粘贴需要安装VMware Tools. 1.点击菜单栏--虚拟机--安装VMware Tools. 2.打开linux终端,进入/media/VMware Tools目录. ...
- kali linux之netcat
网络工具中的瑞士军刀----体积小,功能强大 侦听模式/传输模式 telnet/获取banner信息 传输文本信息,文件,目录 加密传输文件,远程控制/木马,加密所有流量(来做远程控制是非常理想的选择 ...
- 【转】c#中@的3种作用
源地址:https://www.cnblogs.com/linkbiz/p/6380814.html
- checkbox的常见问题
1.在使用checkbox时,最好不要阻止他原有的事件,要利用它原有的事件进行控制 2.尽量使用label for属性,不要对input元素的父元素或者input本身绑定事件,这样不能有效的避免冒泡事 ...
- 在VS 2012或2013中使用WSE
1,首先下载 WSE http://www.microsoft.com/en-us/download/confirmation.aspx?id=14089 2,安装的时候选上, 3,C:\Progra ...