Django中form组件的所有内置字段

Posted wen-kang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中form组件的所有内置字段相关的知识,希望对你有一定的参考价值。

  1 Field
  2     required=True,               是否允许为空
  3     widget=None,                 html插件
  4     label=None,                  用于生成Label标签或显示内容
  5     initial=None,                初始值
  6     help_text=‘‘,                帮助信息(在标签旁边显示)
  7     error_messages=None,         错误信息 {required: 不能为空, invalid: 格式错误}
  8     validators=[],               自定义验证规则
  9     localize=False,              是否支持本地化
 10     disabled=False,              是否可以编辑
 11     label_suffix=None            Label内容后缀
 12  
 13  
 14 CharField(Field)
 15     max_length=None,             最大长度
 16     min_length=None,             最小长度
 17     strip=True                   是否移除用户输入空白
 18  
 19 IntegerField(Field)
 20     max_value=None,              最大值
 21     min_value=None,              最小值
 22  
 23 FloatField(IntegerField)
 24     ...
 25  
 26 DecimalField(IntegerField)
 27     max_value=None,              最大值
 28     min_value=None,              最小值
 29     max_digits=None,             总长度
 30     decimal_places=None,         小数位长度
 31  
 32 BaseTemporalField(Field)
 33     input_formats=None          时间格式化   
 34  
 35 DateField(BaseTemporalField)    格式:2015-09-01
 36 TimeField(BaseTemporalField)    格式:11:12
 37 DateTimeField(BaseTemporalField)格式:2015-09-01 11:12
 38  
 39 DurationField(Field)            时间间隔:%d %H:%M:%S.%f
 40     ...
 41  
 42 RegexField(CharField)
 43     regex,                      自定制正则表达式
 44     max_length=None,            最大长度
 45     min_length=None,            最小长度
 46     error_message=None,         忽略,错误信息使用 error_messages={invalid: ...}
 47  
 48 EmailField(CharField)      
 49     ...
 50  
 51 FileField(Field)
 52     allow_empty_file=False     是否允许空文件
 53  
 54 ImageField(FileField)      
 55     ...
 56     注:需要PIL模块,pip3 install Pillow
 57     以上两个字典使用时,需要注意两点:
 58         - form表单中 enctype="multipart/form-data"
 59         - view函数中 obj = MyForm(request.POST, request.FILES)
 60  
 61 URLField(Field)
 62     ...
 63  
 64  
 65 BooleanField(Field)  
 66     ...
 67  
 68 NullBooleanField(BooleanField)
 69     ...
 70  
 71 ChoiceField(Field)
 72     ...
 73     choices=(),                选项,如:choices = ((0,上海),(1,北京),)
 74     required=True,             是否必填
 75     widget=None,               插件,默认select插件
 76     label=None,                Label内容
 77     initial=None,              初始值
 78     help_text=‘‘,              帮助提示
 79  
 80  
 81 ModelChoiceField(ChoiceField)
 82     ...                        django.forms.models.ModelChoiceField
 83     queryset,                  # 查询数据库中的数据
 84     empty_label="---------",   # 默认空显示内容
 85     to_field_name=None,        # HTML中value的值对应的字段
 86     limit_choices_to=None      # ModelForm中对queryset二次筛选
 87      
 88 ModelMultipleChoiceField(ModelChoiceField)
 89     ...                        django.forms.models.ModelMultipleChoiceField
 90  
 91  
 92      
 93 TypedChoiceField(ChoiceField)
 94     coerce = lambda val: val   对选中的值进行一次转换
 95     empty_value= ‘‘            空值的默认值
 96  
 97 MultipleChoiceField(ChoiceField)
 98     ...
 99  
100 TypedMultipleChoiceField(MultipleChoiceField)
101     coerce = lambda val: val   对选中的每一个值进行一次转换
102     empty_value= ‘‘            空值的默认值
103  
104 ComboField(Field)
105     fields=()                  使用多个验证,如下:即验证最大长度20,又验证邮箱格式
106                                fields.ComboField(fields=[fields.CharField(max_length=20), fields.EmailField(),])
107  
108 MultiValueField(Field)
109     PS: 抽象类,子类中可以实现聚合多个字典去匹配一个值,要配合MultiWidget使用
110  
111 SplitDateTimeField(MultiValueField)
112     input_date_formats=None,   格式列表:[%Y--%m--%d, %m%d/%Y, %m/%d/%y]
113     input_time_formats=None    格式列表:[%H:%M:%S, %H:%M:%S.%f, %H:%M]
114  
115 FilePathField(ChoiceField)     文件选项,目录下文件显示在页面中
116     path,                      文件夹路径
117     match=None,                正则匹配
118     recursive=False,           递归下面的文件夹
119     allow_files=True,          允许文件
120     allow_folders=False,       允许文件夹
121     required=True,
122     widget=None,
123     label=None,
124     initial=None,
125     help_text=‘‘
126  
127 GenericIPAddressField
128     protocol=both,           both,ipv4,ipv6支持的IP格式
129     unpack_ipv4=False          解析ipv4地址,如果是::ffff:192.0.2.1时候,可解析为192.0.2.1, PS:protocol必须为both才能启用
130  
131 SlugField(CharField)           数字,字母,下划线,减号(连字符)
132     ...
133  
134 UUIDField(CharField)           uuid类型
135 复制代码

 

以上是关于Django中form组件的所有内置字段的主要内容,如果未能解决你的问题,请参考以下文章

Django-Form组件之字段

9.Django form组件

Django form表单

django form和ModelForm组件

forms组件

form组件-字段