浅析djangoform(3):表单核心字段参数和字段

上传人:ji****n 文档编号:45435285 上传时间:2018-06-16 格式:DOCX 页数:4 大小:18.75KB
返回 下载 相关 举报
浅析djangoform(3):表单核心字段参数和字段_第1页
第1页 / 共4页
浅析djangoform(3):表单核心字段参数和字段_第2页
第2页 / 共4页
浅析djangoform(3):表单核心字段参数和字段_第3页
第3页 / 共4页
浅析djangoform(3):表单核心字段参数和字段_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《浅析djangoform(3):表单核心字段参数和字段》由会员分享,可在线阅读,更多相关《浅析djangoform(3):表单核心字段参数和字段(4页珍藏版)》请在金锄头文库上搜索。

1、浅析浅析 django form(3):表单核心字段参数和字段:表单核心字段参数和字段文档参考:概述概述我要弄清楚的是什么:1、django form 字段的基础知识2、form 字段的工作机制3、应用与实际项目中4、Form类与 models 的区别class Field(*kwargs):当创建一个 Form 类,最重要的部分要创建 form 的字段,也就是字段类(class Field(*kwargs)的实例。每个字段都有一系列的验证逻辑和少量的钩子?Field.clean(value)我们可以直接通过from django import forms对应的字段类实例化一个字段来用,当然这

2、只是在开发测试或学习上用的,很多时候要写在Form 类中组成一个兵团。每个字段实例都有一个clean()方法,可能需要一个参数,如果验证不通过则触发一个django.forms.ValidationError异常 否则返回一个干净的值,我们当然期望返回一个干净的值了。 from django import forms f = forms.EmailField() #实例化一个表单字段 f.clean() #传参数(干净的) f.clean() f.clean(invalid e-mail address)Traceback (most recent call last):.Validation

3、Error: uEnter a valid e-mail address.下面看看核心的字段参数字段参数核心字段参数核心字段参数Field.require字段必需性。如果传入为空或 None,则触发ValidationError异常。如f = forms.CharField()如果传入空值或 None 则触发异常,因为字段默认的required=True,如果更改这种状态,则设置f = forms.CharField(required=False)实例Field.label用于字段在表单的显示,如果不设置那么显示的就是字段的名称了。class CommentForm(forms.Form):.

4、 name = forms.CharField(label=your name). comment = forms.CharField().f = CommentForm(auto_id=False) # *利用 auto_id=False 来测试表单*print fyour name:Comment:Field.initialinitial初始化,用于指定字段的值当在一个未绑定表单未绑定表单中渲染字段时。class CommentForm(forms.Form):. name = forms.CharField(initial=your name). comment = forms.Char

5、Field().f = CommentForm(auto_id=False)print fName:Comment:在上面说了,initial用于为绑定的表单,为什么这么说呢,可测试如下设想:通过一个字典对象,表单字段名做键,alue 是初始化的值,设置为默认值,然后传入表单。如default_data = name:your name,url:http:/f=CommentForm(default_data,auto_id=False)则结果如下:Name:Url:Enter a valid URL.Comment:This field is required.原因就是:如果你这样做将会触发

6、表单验证,默认项有不符合表单验证的数据。如果已经设置了 name = forms.CharField(initial=Your name),又设置了 data = name: , url: , comment: Foo,f = CommentForm(data)则后者会覆盖前者。Field.widget字段的小部件,如:class CommentForm(forms.Form):. name = forms.CharField(widget=forms.TextInput(attrs=class:username). comment = forms.CharField(widget=forms

7、.TextInput(attrs=size:30).f=CommentForm(auto_id=False)f.as_table()uName:nComment:具体详见 widgetsField.help_text也就是字段描述信息,当 form 表单自动生成 html 时渲染出来。如:class HelpText(forms.Form):. subject = forms.CharField(max_length=100,help_text=100 characters max.). message = forms.CharField().f = HelpText(auto_id=Fals

8、e)print f.as_table()Subject:100 characters max.Message:Field.error_messages让你重新默认的出错信息,通过字典的键匹配错误的信息你想重新的错误信息。如:name = forms.CharField(error_messages=required: Please enter your name)name.clean()Traceback (most recent call last):.ValidationError: uPlease enter your name注意error_messages=required:xxxxx,这里的键必须满足built-in Field classesField.Validators字段验证器,我们可以写验证标准,但字段传入的值不符合我们写的验证标准时,就触发一个ValidationError异常。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号