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 ...
随机推荐
- docker镜像导入导出备份迁移
导出: docker save -o centos.tar centos:latest #将centos:latest镜像导出为centos.tar文件 导入: docker load -i cent ...
- (转)cube-ui后编译
转载地址:https://www.jianshu.com/p/189755f9ce43 1. 后编译介绍 目前大部分的前端项目开发都是使用es6+的代码并且使用babel进行编译,而传统的对代码包的引 ...
- apache配置文件详解(中英文对照版)
# This is the main Apache server configuration file. It contains the # configuration directives that ...
- 解决飞秋绑定TCP错误
电脑不能打开网页,局域网的飞秋不能运行:提示TCP/IP错误,错误事件代码:10106.重装TCP/IP协议后就OK了…… 步骤如下:1.删除这两个注册表选项:(打开注册表命令regedit.如果不能 ...
- Angular 4.x NgClass ngStyle 指令用法
<some-element [ngClass]="'first second'">...</some-element> <some-element [ ...
- RocketMQ的顺序消费和事务消费
一.三种消费 :1.普通消费 2. 顺序消费 3.事务消费 1.1 顺序消费:在网购的时候,我们需要下单,那么下单需要假如有三个顺序,第一.创建订单 ,第二:订单付款,第三:订单完成.也就是这个三个 ...
- ASP.NET Core快速入门(第2章:配置管理)- 学习笔记(转载)
原文地址:https://mp.weixin.qq.com/s?__biz=MjM5NjMzMzE2MA==&mid=2451733443&idx=2&sn=6d01721c5 ...
- H5 背景图片自适应屏幕问题解决办法
今天也是偶然遇到这个问题的,平成很少用到关于css的内容,就在网上找了很多个方法,最后总结以下几种很实用的方法 方法1: <style> body{ background:url(beij ...
- H3C S12508单板卡 通过bootware升级software版本
H3C S12508单板卡 通过bootware升级software版本 案例:S12508更换主控板LST1MRPNC1 ,该板卡状态为Slave状态: 设备状态:S12508共2台做了堆叠,共含4 ...
- Vue.js 源码分析(十五) 指令篇 v-bind指令详解
指令是Vue.js模板中最常用的一项功能,它带有前缀v-,比如上面说的v-if.v-html.v-pre等.指令的主要职责就是当其表达式的值改变时,相应的将某些行为应用到DOM上,先介绍v-bind指 ...