美文网首页
Forms#2-fields & widgets

Forms#2-fields & widgets

作者: wangfp | 来源:发表于2017-09-22 16:30 被阅读0次

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属性的字典

Built-in widgets

相关文章

网友评论

      本文标题:Forms#2-fields & widgets

      本文链接:https://www.haomeiwen.com/subject/ybffextx.html