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 ...
随机推荐
- LibreOJ 6279 数列分块入门 3(分块+排序)
题解:自然是先分一波块,把同一个块中的所有数字压到一个vector中,将每一个vector进行排序.然后对于每一次区间加,不完整的块加好后暴力重构,完整的块直接修改标记.查询时不完整的块暴力找最接近x ...
- POJ2253 Frogger(spfa变形)
Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Fro ...
- 享元(Flyweight)模式
享元(Flyweight)模式:运用共享技术有效的支持大量细粒度的对象. /* * 抽象享元(Flyweight)角色:此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口. 那些需要外蕴 ...
- HTML 5+CSS 3网站布局应用教程 (赵振方) 随书光盘
<HTML5+CSS3网站布局应用教程>全面介绍HTML 5与CSS 3进行Web设计的知识.全书由16章组成.主要内容包括:主流浏览器对HTML 5的支持情况.HTML 5与HTML4在 ...
- Sobel算法
最近看了一些Sobel算法,并试了一下,源码如下: private void Sobel(Bitmap img) { int width = img.Width; int height = img.H ...
- C#设计模式系列:适配器模式(Adapter Pattern)
一.引言 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用.但是新环境要求的接口是这些现存对象所不满足的.如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同 ...
- angular 中间人模式
import { Component, OnInit, EventEmitter, Output } from '@angular/core'; @Component({ selector: 'app ...
- owinAuthorize
Nuget包获取 Install-Package Microsoft.AspNet.WebApi.Owin -Version 5.1.2 Install-Package Microsoft.Owin. ...
- Sql 不确定列 行转列操作
做项目时,用到了汇总统计的行转列,且 表结构: 具体存储过程脚本如下: -- =============================================-- Author: -- C ...
- centos7下git的安装和配置
git的安装: yum 源仓库里的 Git 版本更新不及时,最新版本的 Git 是 1.8.3.1,但是官方最新版本已经到了 2.9.2.想要安装最新版本的的 Git,只能下载源码进行安装. 1. 查 ...