Field类
Field类一个抽象基类
- Field.clean(value)
由于检测输入值的是否符合字段类型,若不符合,引发django.forms.ValidationError
异常 - Field.required
布尔型属性,默认为True,即该字段不能为空,否则在使用clean()
方法检查输入值时引发django.forms.ValidationError
异常 - Field.label
指定label名,若没有显式的指定,Django将自动根据字段名称创建label名 - Field.label_suffix
指定label后缀 - Field.initial
初始化字段值,即指定HTML的input
标签中的value
属性 - Field.widget
- Field.help_text
用于对字段的描述 - Field.error_messages
用于重载字段的默认错误信息,error_message
是一个字典类型 - Field.validators
为该字段提供一个验证函数列表 - Field.localize
- Field.disabled
布尔型属性,默认为False,即该字段可用;否则该字段不能被用户修改 - Field.has_changed()
用于检查该字段的值是否同Field.initial
的值一致
Built-in Field classes
官方文档给出了每个内建字段的:
- 默认weidget
- 默认值(empty value)
- 一般类型
- 验证方式
- 错误信息中包含的键
- 一些其它的参数
widgets
widgets
用于指定Django在HTML的<input>
元素的表现形式
- forms中的每个字段拥有自己默认的widget,但同时也可以显式地进行指定
- 有的widget类型拥有自己的参数
from django import forms BIRTH_YEAR_CHOICES = ('1980', '1981', '1982') FAVORITE_COLORS_CHOICES = ( ('blue', 'Blue'), ('green', 'Green'), ('black', 'Black'), ) class SimpleForm(forms.Form): birth_year = forms.DateField(widget=forms.SelectDateWidget(years=BIRTH_YEAR_CHOICES)) favorite_colors = forms.MultipleChoiceField( required=False, widget=forms.CheckboxSelectMultiple, choices=FAVORITE_COLORS_CHOICES, )
- 自定义widget样式
通过在初始化widget
对象时指定一些额外的对象来改变其表现样式(例如添加class
属性使得可以使用CSS进行样式调整)class CommentForm(forms.Form): # 可以通过attrs参数来对<input>元素添加额外的属性 # 注意,此处使用的是CharField默认的widget,只不过对其指定了一些额外的属性 name = forms.CharField(widget=forms.TextInput(attrs={'class': 'special'})) url = forms.URLField() comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))
- class Widget(attrs=None)
Widget
是一个抽象基类- attrs
一个包含HTML属性的字典
- attrs