zoukankan      html  css  js  c++  java
  • 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)

     

     

  • 相关阅读:
    计算机编程语言有哪些?
    JS/Jquery遍历JSON对象、JSON数组、JSON数组字符串、JSON对象字符串
    原生js弹力球
    js中的位置属性
    javascript中常见的表单验证项
    深入理解系统调用
    计一次后怕的排错经历
    Oracle 11G ASM新加磁盘无法init disk
    Oracle需要清理的日志
    openstack-neutron
  • 原文地址:https://www.cnblogs.com/open-yang/p/11223142.html
Copyright © 2011-2022 走看看