修改 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 的主要内置字段介绍的更多相关文章

  1. {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm

    Django基础十之Form和ModelForm组件 本节目录 一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 Model ...

  2. Python的常用内置函数介绍

    Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...

  3. Python3的内置函数介绍

    Python3的官网链接:https://docs.python.org/3/library/functions.html?highlight=built#ascii 内置函数介绍 abs 绝对值函数 ...

  4. Django Form 内置字段

    常用字段: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 ...

  5. VS2019 开发Django(九)------内置模板和过滤器

    导航:VS2019开发Django系列 紧接上篇,继续介绍Django中的模板,考虑可能篇幅过长,所以分为两部分来讲,今天的主要内容: 1)内置模板和过滤器 母版,继承关系.头部导航和页脚,是需要与其 ...

  6. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  7. Python常用内置函数介绍

    Python提供了一个内联模块buildin.内联模块定义了一些开发中经常使用的函数,利用这些函数可以实现数据类型的转换.数据的计算.序列的处理等功能.下面将介绍内联模块中的常用函数. Python内 ...

  8. 常见 Bash 内置变量介绍

    目录 $0$1, $2 等等$#$* 与 "$*"$@ 与 "$@"$!$_$$$PPID$?$BASH$BASH_VERSION$EUID 与 $UID$GR ...

  9. 深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇

    笨笨长期以来一直使用Origin软件画图和处理数据,但Origin软件没有编程语言的接口.笨笨开发CChart的一个潜在的目标.是想实现Origin软件的功能.当然这是一个不可能达到的目标.Origi ...

随机推荐

  1. 苹果手机Chrome浏览器显示input:disabled时字体颜色总是为浅灰色

    今天被测试人员提了个bug:苹果手机浏览器(Chrome)打开h5,控件在input:disabled的样式始终是浅灰色,要求改成黑色.测试对比:1.在多个pc浏览器上浏览input:disabled ...

  2. [Go] gocron源码阅读-go语言中的切片接口和类型综合

    // getCommands func getCommands() []cli.Command { command := cli.Command{ Name: "web", Usa ...

  3. RAID5的创建(5块磁盘,三块做raid,两块做备份)

    RAID5的创建(5块磁盘,三块做raid,两块做备份) 第一步:参考我的上一篇博客,用同样的方法添加5块硬盘.地址如下: https://www.cnblogs.com/Feng-L/p/11735 ...

  4. 关于 'chromedriver' executable needs to be in PATH 的解决办法

    用 chrome 浏览器跑 selenium,执行以下脚本: from selenium import webdriverdr=webdriver.Chrome()dr.maximize_window ...

  5. web-综合题2

    地址 http://cms.nuptzj.cn/ 0x01  很有意思的一题综合题,确实包含的内容比较多 打开页面 把能打开的都打开,能看的都看一下 几个重点的信息 一段hash e045e454c1 ...

  6. C++ class 内的 [] 重载示例。

    #include <iostream> // overloading "operator [] " inside class ///////////////////// ...

  7. .NET使用Bogus生成大量随机数据(转载)

    原文地址:https://www.cnblogs.com/sdflysha/p/20190821-generate-lorem-data.html 在演示Demo.数据库脱敏.性能测试中,有时需要生成 ...

  8. 性能对比:aelf智能合约运行环境性能是evm的1000倍

    测试用例及代码库 机器配置 测试结果 3.1 EVM 3.2 AElf 3.2.1 LoopDivAdd10M 3.2.2 LoopExpNop1M 测试结论 近期对标以太坊做了一系列针对测试,在此次 ...

  9. Exercises for IN1900

    Exercises for IN1900October 14, 2019PrefaceThis document contains a number of programming exercises ...

  10. Practical Go: Real world advice for writing maintainable Go programs

    转自:https://dave.cheney.net/practical-go/presentations/qcon-china.html?from=timeline   1. Guiding pri ...