Form那些事儿

创建Form类时,主要涉及到 【字段】 和 【插件】,字段用于对用户请求数据的验证,插件用于自动生成HTML;

1:initial

初始值,input框里面的初始值。

class LoginForm(forms.Form):
username = forms.CharField(
min_length=8,
label="用户名",
initial="张三" # 设置默认值
)
pwd = forms.CharField(min_length=6, label="密码")

2:error_messages

返回的错误信息

class LoginForm(forms.Form):
username = forms.CharField(
min_length=8,
label="用户名",
initial="张三",
error_messages={
"required": "不能为空", //返回的错误信息
"invalid": "格式错误",
"min_length": "用户名最短8位"
}
)
pwd = forms.CharField(min_length=6, label="密码")

3:password

class LoginForm(forms.Form):
...
pwd = forms.CharField(
min_length=6,
label="密码", //密码框是不可见的 要使用 PasswordInput       widget=forms.widgets.PasswordInput(attrs={'class': 'c1'}, render_value=True) )

4:radioSelect

class LoginForm(forms.Form):
username = forms.CharField(
min_length=8,
label="用户名",
initial="张三",
error_messages={
"required": "不能为空",
"invalid": "格式错误",
"min_length": "用户名最短8位"
}
)
pwd = forms.CharField(min_length=6, label="密码")
gender = forms.fields.ChoiceField(
choices=((1, "男"), (2, "女"), (3, "保密")),
label="性别",
initial=3, // radio 单选框使用RadioSelect方法产生
widget=forms.widgets.RadioSelect()
)

5:单选Select

class LoginForm(forms.Form):
...
hobby = forms.fields.ChoiceField(
choices=((1, "篮球"), (2, "足球"), (3, "双色球"), ),
label="爱好",
initial=3,      // select 单选框使用 Select方法
widget=forms.widgets.Select()
)

6:多选Select

class LoginForm(forms.Form):
...
hobby = forms.fields.MultipleChoiceField(
choices=((1, "篮球"), (2, "足球"), (3, "双色球"), ),
label="爱好",
initial=[1, 3], // 多选的select 使用的是 SelectMultiple
widget=forms.widgets.SelectMultiple() )

7:单选checkbox

class LoginForm(forms.Form):
...
keep = forms.fields.ChoiceField(
label="是否记住密码",
initial="checked", // 只有一个 CheckBox
widget=forms.widgets.CheckboxInput()
)

8:多选checkbox

class LoginForm(forms.Form):
...
hobby = forms.fields.MultipleChoiceField(
choices=((1, "篮球"), (2, "足球"), (3, "双色球"),),
label="爱好",
initial=[1, 3], // 多个checkbox 要使用checkboxSelectMultiple
widget=forms.widgets.CheckboxSelectMultiple()
)

校验

关于手机号码的校验

from django.forms import Form
from django.forms import widgets
from django.forms import fields
from django.core.validators import RegexValidator // 需要导入的模块 class MyForm(Form):
user = fields.CharField(
validators=[RegexValidator(r'^[0-9]+$', '请输入数字'), RegexValidator(r'^1[3-9][0-9]{9}+$', '数字必须以13到19开头')],
)

最新文章

  1. HTML编码规范
  2. The Top 10 Javascript MVC Frameworks Reviewed
  3. MD5加密(16/32)
  4. 一个C#序列化时循环引用的问题
  5. SQL加、查、改、删、函数
  6. JLink 在J-Flash ARM批处理自动下载
  7. 解决eclipse创建Maven项目后无法生成src/main/java资源文件夹的方法
  8. 第11章 使用PHP从Web访问MySQL数据库
  9. Arch安装KDE5
  10. ubuntu 编译运行 opencv C++ 项目
  11. webstorm中sftp远程调试配制
  12. 使用JDBC中的出现的乱码和查询无结果问题
  13. Maximum Sum of Digits(CodeForces 1060B)
  14. social-auth-app-django集成第三方登录
  15. 04基于python玩转人工智能最火框架之TensorFlow开发环境搭建
  16. BareTail大文件日志实时查看工具
  17. [BZOJ4027][HEOI2015]兔子与樱花 树形dp
  18. spring mvc 默认页面
  19. e585. Converting Between RGB and HSB Colors
  20. 考试题T3

热门文章

  1. 利用Qt自带工具发布程序
  2. Chai.js断言库API中文文档
  3. table使用display:block时会多出一条边框
  4. 基于RBAC权限管理的后台管理系统
  5. hdu 1269 (强联通分量Tarjan入门)
  6. Python执行时间的计算方法小结
  7. Mybatis 框架搭建实例
  8. Javaweb Form表单查询
  9. vue 使用 element ui动态添加表单
  10. 洛谷P1969 [NOIP2013提高组Day2T1] 积木大赛