Field類
Field類一個(gè)抽象基類
- Field.clean(value)
由于檢測(cè)輸入值的是否符合字段類型,若不符合,引發(fā)django.forms.ValidationError異常 - Field.required
布爾型屬性,默認(rèn)為True,即該字段不能為空,否則在使用clean()方法檢查輸入值時(shí)引發(fā)django.forms.ValidationError異常 - Field.label
指定label名,若沒(méi)有顯式的指定,Django將自動(dòng)根據(jù)字段名稱創(chuàng)建label名 - Field.label_suffix
指定label后綴 - Field.initial
初始化字段值,即指定HTML的input標(biāo)簽中的value屬性 - Field.widget
- Field.help_text
用于對(duì)字段的描述 - Field.error_messages
用于重載字段的默認(rèn)錯(cuò)誤信息,error_message是一個(gè)字典類型 - Field.validators
為該字段提供一個(gè)驗(yàn)證函數(shù)列表 - Field.localize
- Field.disabled
布爾型屬性,默認(rèn)為False,即該字段可用;否則該字段不能被用戶修改 - Field.has_changed()
用于檢查該字段的值是否同Field.initial的值一致
Built-in Field classes
官方文檔給出了每個(gè)內(nèi)建字段的:
- 默認(rèn)weidget
- 默認(rèn)值(empty value)
- 一般類型
- 驗(yàn)證方式
- 錯(cuò)誤信息中包含的鍵
- 一些其它的參數(shù)
widgets
widgets用于指定Django在HTML的<input>元素的表現(xiàn)形式
- forms中的每個(gè)字段擁有自己默認(rèn)的widget,但同時(shí)也可以顯式地進(jìn)行指定
- 有的widget類型擁有自己的參數(shù)
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樣式
通過(guò)在初始化widget對(duì)象時(shí)指定一些額外的對(duì)象來(lái)改變其表現(xiàn)樣式(例如添加class屬性使得可以使用CSS進(jìn)行樣式調(diào)整)class CommentForm(forms.Form): # 可以通過(guò)attrs參數(shù)來(lái)對(duì)<input>元素添加額外的屬性 # 注意,此處使用的是CharField默認(rèn)的widget,只不過(guò)對(duì)其指定了一些額外的屬性 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是一個(gè)抽象基類- attrs
一個(gè)包含HTML屬性的字典
- attrs