Django之from.Form内置字段

from django import forms

 

Field

 

 

   

required=True,    

是否允许为空

  

 widget=None,     

 HTML插件

   

label=None,       

用于生成Label标签或显示内容

   

initial=None,       

初始值

   

help_text='',  

帮助信息(在标签旁边显示)

   

error_messages=None,      

错误信息 {'required': '不能为空', 'invalid': '格式错误'}

   

validators=[],           

自定义验证规则

  

localize=False,        

是否支持本地化

  

disabled=False,          

 是否可以编辑

   

label_suffix=None           

 Label内容后缀

 

CharField(Field)

字符串

 

   

max_length=None,

最大长度

   

min_length=None,   

最小长度

   

strip=True                 

是否移除用户输入空白

IntegerField(Field)

整数

 

  

max_value=None,       

最大值

   

min_value=None,        

最小值

FloatField(IntegerField)

浮点数

 

DecimalField(IntegerField)

 

 

   

max_value=None,

最大值

   

min_value=None,       

 最小值

   

max_digits=None,             

总长度

   

decimal_places=None,       

 小数位长度

  

input_formats=None          

时间格式化  

ChoiceField(Field)

单选

 

   

choices=(),               

选项,如:choices = ((0,'上海'),(1,'北京'),)

   

required=True,             

是否必填

  

 widget=None,             

  插件,默认select插件

   

label=None,                

Label内容

   

initial=None,              

初始值

   

help_text='',             

 帮助提示

ModelChoiceField(ChoiceField)

单选,通过orm操作读取数据

 

   

queryset,                 

 # 查询数据库中的数据(类中必须定义__str__方法)

   

empty_label="---------", 

 # 默认空显示内容

   

to_field_name=None,       

 # HTMLvalue的值对应的字段

   

limit_choices_to=None    

 # ModelForm中对queryset二次筛选

 MultipleChoiceField(ChoiceField)

多选

   

ModelMultipleChoiceField(ModelChoiceField)

多选,通过orm操作读取数据,类似单选

 

FileField(Field)

 

 

    

allow_empty_file=False    

否允许空文件

 EmailField(CharField)

邮箱

 

ImageField(FileField)

     

 

 

  注:需要PIL模块,pip3 install Pillow

 

   

以上两个字典使用时,需要注意两点:

- form表单中 enctype="multipart/form-data"

- view函数中 obj = MyForm(request.POST, request.FILES)

RegexField(CharField)

正则

 

  

 regex,  

自定制正则表达式

   

max_length=None,   

最大长度

   

min_length=None,        

最小长度

   

error_message=None,      

忽略,错误信息使用 error_messages={'invalid': '...'}

SplitDateTimeField(MultiValueField)

 

 

   

input_date_formats=None,  

格式列表:['%Y--%m--%d', '%m%d/%Y', '%m/%d/%y']

   

input_time_formats=None   

格式列表:['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']

TypedChoiceField(ChoiceField)                   

 

 

 

coerce = lambda val: val  

对选中的值进行一次转换

 

empty_value= ''

 空值的默认值

TypedMultipleChoiceField(MultipleChoiceField)

 

 

   

coerce = lambda val: val  

对选中的每一个值进行一次转换

   

empty_value= ''            

空值的默认值

FilePathField(ChoiceField)

文件选项,目录下文件显示在页面中

 

   

path,                      

文件夹路径

   

match=None,                

正则匹配

   

recursive=False,          

递归下面的文件夹

   

allow_files=True,          

允许文件

  

 allow_folders=False,       

允许文件夹

   

required=True,

 

   

widget=None,

 

   

label=None,

 

   

initial=None,

 

   

help_text=''

 

ComboField(Field)

 

 

   

fields=()                 

 使用多个验证,如下:即验证最大长度20,又验证邮箱格式
fields.ComboField(fields=[fields.CharField(max_length=20), fields.EmailField(),])

GenericIPAddressField

 

 

   

protocol='both',          

 both,ipv4,ipv6支持的IP格式

   

unpack_ipv4=False         

解析ipv4地址,如果是::ffff:192.0.2.1时候,可解析为192.0.2.1 PSprotocol必须为both才能启用

 

 

MultiValueField(Field)  

 PS: 抽象类,子类中可以实现聚合多个字典去匹配一个值,要配合MultiWidget使用

DateField(BaseTemporalField)    

格式:2015-09-01

TimeField(BaseTemporalField)  

 格式:11:12

DateTimeField(BaseTemporalField)

格式:2015-09-01 11:12

DurationField(Field)            

时间间隔:%d %H:%M:%S.%f

SlugField(CharField)       

 数字,字母,下划线,减号(连字符)

UUIDField(CharField)           

uuid类型

URLField(Field)

 

BooleanField(Field)

 

NullBooleanField(BooleanField)

 

BaseTemporalField(Field)

 

 

posted @ 2019-07-21 22:35  笑得好美  阅读(335)  评论(0编辑  收藏  举报