Django Form 的主要内置字段介绍
修改 urls.py,添加
path('field.html', views.field),
在 templates 下创建 field.html, 内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="/field.html" enctype="multipart/form-data">
<div>f1: <label for="{{ obj.f1.id_for_label }}">{{ obj.f1.label }}</label>
{{ obj.f1.label_tag }}
{{ obj.f1 }}</div>
<div>f3: {{ obj.f3 }}</div>
<div>f4: {{ obj.f4 }}</div>
<div>f5: {{ obj.f5 }}</div>
<div>f6: {{ obj.f6 }}</div>
<div>f7: {{ obj.f7 }}</div>
<div>f8: {{ obj.f8 }}</div>
<input type="submit" value="提交">
</form>
</body>
</html>
修改 views.py
from app01 import forms
def field(request):
if request.method == 'GET':
obj = forms.FieldForm()
return render(request, 'field.html', {'obj': obj})
elif request.method == 'POST':
obj = forms.FieldForm(request.POST, request.FILES)
obj.is_valid()
print(obj.clean())
print(obj.errors.as_json())
return render(request, 'field.html', {'obj': obj})
修改 forms.py
from django.core.validators import RegexValidator
class FieldForm(DForms.Form):
f1 = fields.CharField(
max_length=6, # 最大长度
required=True, # 是否允许为空
initial='World', # 初始值
validators=[RegexValidator(r'^[0-9]+$', '请输入数字', code='e1'), RegexValidator(r'159[0-9]+$', '数字必须以159开头', code='e2')], # 自定义验证规则
error_messages={'required': 'Not null', 'invalid': 'wrong format', 'e1': 'input number', 'e2': 'begin with 159', 'max_length': 'too long'}, # 错误信息
show_hidden_initial=True, # 是否在当前插件后面再加一个隐藏的且具有默认值的插件(可用于检验两次输入是否一直)
label='Hello', # 用于生成Label标签或显示内容
disabled=False, # 是否可以编辑
label_suffix=' -->', # Label内容后缀
)
# f2 = fields.RegexField(r'159[0-9]+$')
f3 = fields.FileField()
f4 = fields.ChoiceField(
initial=2,
choices=[(1, '赵四'), (2, '刘能'), (3, '王舞')],
)
f5 = fields.TypedChoiceField(
coerce=lambda x: int(x), # 对选中的每一个值进行一次转换
initial=2,
choices=[(1, '赵四'), (2, '刘能'), (3, '王舞')],
)
f6 = fields.MultipleChoiceField(
initial=[2, 3],
choices=[(1, '赵四'), (2, '刘能'), (3, '王舞')],
)
f7 = fields.SplitDateTimeField()
f8 = fields.FilePathField(
path='app01', # 文件夹路径
recursive=True, # 递归下面的文件夹
allow_folders=True # 允许文件夹
)

Django Form 的主要内置字段介绍的更多相关文章
- {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm
Django基础十之Form和ModelForm组件 本节目录 一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 Model ...
- Python的常用内置函数介绍
Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...
- Python3的内置函数介绍
Python3的官网链接:https://docs.python.org/3/library/functions.html?highlight=built#ascii 内置函数介绍 abs 绝对值函数 ...
- Django Form 内置字段
常用字段: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 ...
- VS2019 开发Django(九)------内置模板和过滤器
导航:VS2019开发Django系列 紧接上篇,继续介绍Django中的模板,考虑可能篇幅过长,所以分为两部分来讲,今天的主要内容: 1)内置模板和过滤器 母版,继承关系.头部导航和页脚,是需要与其 ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- Python常用内置函数介绍
Python提供了一个内联模块buildin.内联模块定义了一些开发中经常使用的函数,利用这些函数可以实现数据类型的转换.数据的计算.序列的处理等功能.下面将介绍内联模块中的常用函数. Python内 ...
- 常见 Bash 内置变量介绍
目录 $0$1, $2 等等$#$* 与 "$*"$@ 与 "$@"$!$_$$$PPID$?$BASH$BASH_VERSION$EUID 与 $UID$GR ...
- 深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇
笨笨长期以来一直使用Origin软件画图和处理数据,但Origin软件没有编程语言的接口.笨笨开发CChart的一个潜在的目标.是想实现Origin软件的功能.当然这是一个不可能达到的目标.Origi ...
随机推荐
- jQuery—获取表单标签的数据值
获取设置input标签的值 <input class="form-control" type="text" id="username" ...
- Python—基本数据类型
核心数据类型: 数字(int整型.float浮点型.complex复数.bool布尔型) 字符串 str 列表(List) 元组(Tuple) 字典(Dictionary) 集合() 数字 整数,浮点 ...
- Linux—运行yum报错:No module named yum
产生原因:yum基于python写的,根据报错信息提示,是yum的python版本对应不上目前python环境的版本导致的.也就是说 有人升级或者卸载了python. 解决方式: # 查看yum版本 ...
- NOI2015 软件包管器
NOI2015 软件包管器 https://www.luogu.org/problem/P2146 题意 维护一棵树,每个节点都有一个为0或1的值,初始值全为0 需要支持 将一条链上的点都变成1, 将 ...
- python3.5.3rc1学习五:列表与元组
#元组和列表 #元组定义x = 5,6,2,6 #or x = (5,6,2,6) #列表定义 y = [5,6,2,6] # 元组的使用,我们用return语句来演示 def exampleFunc ...
- 创建testng.xml文件
简单介绍 运行TestNG测试脚本有两种方式:一种是直接通过IDE运行(例如使用eclipse中的“Run TestNG tests”),另一种是从命令行运行(通过使用xml配置文件).当我们想执行某 ...
- jwt, token, session和cookies
jwt token,session和cookies
- tcp 和UDP
文章目录前言1. UDP2. TCP2.1 TCP 的三次握手2.2 TCP 四次挥手2.3 累计确认2.4 顺序问题和丢包问题2.5 流量控制的问题2.6 拥塞控制的问题总结及面试问题前言前端的 ...
- 正睿暑期培训day3考试
链接 A 可以发现一个小棍的贡献是使得左右两列上的球位置互换.所以只要找出哪两个球会经过当前位置,然后swap一下就行了.. 考场上调了2.5h,依然没过样例.赛后发现忘了排序!!!!... /* * ...
- mysql小知识点汇总---(时间与时间戳的转换, 修改mysql用户名密码, navicate 导入sql文件报错 1153)
1. 时间与时间戳的转换 1.1 时间戳转时间 FROM_UNIXTIME(add_time, '%Y-%m-%d') 1.2 时间转时间戳 UNIX_TIMESTAMP('2015-04-29') ...