美文网首页
django_form_表单字段速查

django_form_表单字段速查

作者: 两点半的杂货铺 | 来源:发表于2018-02-25 21:37 被阅读34次

一、表单常用的属性

大部分的类是继承Field所以大部分的标签都有公共的属性

image.png
  • use_required_attribute

去除浏览器的判断属性,在form表单类生命

class TestForm(forms.Form):
    use_required_attribute = False
  • 代码展示

class TestForm(forms.Form):
    use_required_attribute = False
    user = fields.CharField(
        max_length=12,#最大长度
        min_length=12,#最小长度
        #empty_value = "111",
        required = True,  # 是否必须填
        error_messages={},#错误信息
        #widget = widgets.Select(),#定义HTML插件
        #widget = widgets.Select(attrs={'class':'tss'}),#加属性

        label='用户名' ,#定义label标签显示内容 使用方法:{{ obj.user.label }}
        #initial='xx',#设置默认值,在input默认展示值
        help_text='帮助文档',#在html 后显示文字 使用方法{{ obj.user.help_text }}
        show_hidden_initial= True, # 生成一个隐藏的文本框用来记录 <input type="hidden" name="initial-user" value="xx" id="initial-id_user">
        #validators=[],#自定义验证规则
        #localize = Flase, #是否支持本地化
#        disabled=True, #是否可编辑,默认Flase 可编辑
        #label_suffix=':'#在调用as_p as_table 等时在 label加符号,如果没设置lable 就默认字段
    )
  • required 是否必须填

判断表单内容是否可以为空

  • error_messages参数让你覆盖字段引发的异常中的默认信息

判断覆盖k和设置字段一一对应,例如上面的required判断是否为空 {'required': '不能为空', 'invalid': '格式错误'},使用的写法

name = forms.CharField(error_messages={'required': 'Please enter your name'})
  • label

定义label标签显示内容 使用方法:{{ obj.user.label }}

  • initial

initial='xx',#设置默认值,在input默认展示值,也可传入对象initial=datetime.date.today,在未绑定表达使用,比在绑定表单时get请求时,传入的字典,不会触发form表单判断机制

  • widget

widget = widgets.Select(),#定义HTML插件
widget = widgets.Select(attrs={'class':'tss'}),#加属性

  • help_text

help_text='帮助文档',#在html 后显示文字 使用方法{{ obj.user.help_text }}

  • validators自定义验证规则
  • localize是否支持本地化
  • disabled是否可编辑

disabled=True, #是否可编辑,默认Flase 可编辑

  • label_suffix

label_suffix=':'#在调用as_p as_table 等时在 label加符号,如果没设置lable 就默认字段

  • show_hidden_initia

show_hidden_initial= True, # 生成一个隐藏的文本框用来记录<input type="hidden" name="initial-user" value="xx" id="initial-id_user">

二、常用的标签字段

  • CharField 文本判断

  • max_length,min_length,strip,empty_value
  • 默认的Widget:TextInput
  • 空值:与empty_value给出的任何值。
  • 规范化为:一个Unicode 对象。
  • 如果提供,验证max_lengthmin_length。 否则,所有的输入都是合法的。
  • 错误信息的键:min_length, max_length, required
  • IntegerField 数字判断

  • max_value=12,#最大数,min_value=6,#最小数
age = fields.IntegerField(
        max_value=12,#最大数
        min_value=6,#最小数)
  • 默认的Widget:当Field.localizeFalse 时为NumberInput,否则为TextInput
  • 空值:None
  • 规范化为:一个Python 整数或长整数。
  • 验证给定值是一个整数。 允许前导和尾随空格,如Python的int()函数。
  • 错误信息的键:max_value, invalid, required, min_value
  • DecimalField小数判断

max_value最大值 min_value max_digits总长度 decimal_places小数位长度

  • 默认的Widget:当Field.localizeFalse 时为NumberInput,否则为TextInput
  • 空值:None
  • 规范化为:一个Python decimal
  • 验证给定的值为一个十进制数。 忽略前导和尾随的空白。
  • 错误信息的键:max_whole_digits, max_digits, max_decimal_places, max_value, invalid, required, min_value
  • FloatField 小数判断

  • 默认的Widget:当Field.localizeFalse 时为NumberInput,否则为TextInput
  • 空值:None
  • 规范化为:一个Float 对象。
  • 验证给定的值是一个浮点数。 和Python 的float() 函数一样,允许前导和尾随的空白符。
  • 错误信息的键:max_value, invalid, required, min_value

接收两个可选的参数用于验证,max_valuemin_value。 它们控制字段中允许的值的范围。

  • EmailField邮箱判断

  • max_length ,min_length
  • 默认的Widget:EmailInput
  • 空值:''(一个空字符串)
  • 规范化为:一个Unicode 对象。
  • 验证给出的值是一个合法的邮件地址,使用一个适度复杂的正则表达式。
  • 错误信息的键:required, invalid

具有两个可选的参数用于验证,max_lengthmin_length。 如果提供,这两个参数将确保字符串的最大和最小长度。

  • ChoiceField下拉框

choices=[(1,'大连'),(2,"北京")] 下拉展示
initial=2 ,#默认展示选择

 chicecity = fields.ChoiceField(
        #后台将接受的value都是字符串
        choices=[(1,'大连'),(2,"北京")] ,#下拉展示
        initial=2 ,#默认展示选择
        required=True, #是否必填
        widget = None, #插件,默认select插件
        label = None, #Label内容
    )
  • 默认的Widget:Select
  • 空值:''(一个空字符串)
  • 规范化为:一个Unicode 对象。
  • 验证给定的值在选项列表中存在。
  • 错误信息的键:required, invalid_choice
  • TypedChoiceField下拉框类型转换
 typechi = fields.TypedChoiceField(
        choices=[(1, '大连'), (2, "北京")],
        coerce=lambda x: int(x),
        #对选中的值进行一次转换
        initial = '1',
        #空值的默认值
    )

  • 默认的Widget:Select
  • 空值:与empty_value给出的任何值。
  • 规范化为:coerce 参数类型的值。
  • 验证给定的值在选项列表中存在并且可以被强制转换。
  • 错误信息的键:required, invalid_choice
  • MultipleChoiceField多选判断

multchic = fields.MultipleChoiceField(
        # 后台将接受的value都是字符串
        choices=[(1, '大连'), (2, "北京")],  # 下拉展示
        initial=2,  # 默认展示选择
        required=True,  # 是否必填
        widget=None,  # 插件,默认select插件
        label=None,  # Label内容
    )
  • 默认的Widget:SelectMultiple
  • 空值:[](一个空列表)
  • 规范化为:一个Unicode 对象列表。
  • 验证给定值列表中的每个值都存在于选择列表中。
  • 错误信息的键:invalid_list, invalid_choice, required
  • Datetime 年月日显示

 Datetime = fields.DateField(
        #格式要求:2018-02-25
    )
  • 默认的Widget:DateInput
  • 空值:None
  • 规范化为:一个Python datetime.date 对象。
  • 验证给出的值是一个datetime.datedatetime.datetime 或指定日期格式的字符串。
  • 错误信息的键:required, invalid
  • TypedMultipleChoiceField 多选类型转

  • 默认的Widget:SelectMultiple
  • 空值:empty_value
  • 规范化为:coerce参数提供的类型值列表。
  • 验证给定值存在于选项列表中并且可以强制。
  • 错误信息的键:required, invalid_choice
  • DateTimeField年月日时分秒

   DateTimeTime = fields.DateTimeField(
        # 格式要求:2018-02-25 11:25)
  • 默认的Widget:DateTimeInput
  • 空值:None
  • 规范化为:一个Python datetime.datetime 对象。
  • 验证给出的值是一个datetime.datetimedatetime.date 或指定日期格式的字符串。
  • 错误信息的键:required, invalid
  • TimeField时分显示

 Timetime = fields.TimeField(
        # 格式要求:11:25
    )
  • 默认的Widget:TextInput
  • 空值:None
  • 规范化为:一个Python 的datetime.time 对象。
  • 验证给定值是datetime.time或以特定时间格式格式化的字符串。
  • 错误信息的键:required, invalid
  • DurationField时间间隔

 duratime = fields.DurationField(
        #时间间隔
    )
  • 默认的Widget:TextInput
  • 空值:None
  • 规范化为:一个Python timedelta
  • 验证给出的值是一个字符串,而可以给转换为timedelta
  • 错误信息的键:required, invalid.

接收任何可以被parse_duration() 理解的格式。

  • 文件判断FileField

    fielFile = fields.FileField(
    allow_empty_file = False #是否允许空文件
    )
  • 默认的Widget:ClearableFileInput
  • 空值:None
  • 规范化为:一个UploadedFile 对象,它封装文件内容和文件名为一个单独的对象。
  • 可以验证非空的文件数据已经绑定到表单。
  • 错误信息的键:missing, invalid, required, empty, max_length
  • ImageField 图片判断

 image = fields.ImageField(

    #注:需要PIL模块,pip3 install Pillow
    #以上两个字典使用时,需要注意两点:
    #- form表单中
    #enctype = "multipart/form-data"
    #- view函数中
   # obj = MyForm(request.POST, request.FILES)

    )
  • 默认的Widget:ClearableFileInput
  • 空值:None
  • 规范化为:一个UploadedFile 对象,它封装文件内容和文件名为一个单独的对象。
  • 验证文件数据已绑定到表单,并且该文件具有Pillow理解的图像格式。
  • 错误信息的键:missing, invalid, required, empty, invalid_image
  • RegexField 自定义

rege = fields.RegexField(
        regex="",#自定义判断的正则表达式
        max_length="22",
        min_length="33",

    )
  • 默认的Widget:TextInput
  • 空值:''(一个空字符串)
  • 规范化为:一个Unicode 对象。
  • 验证给定值与某个正则表达式匹配。
  • 错误信息的键:required, invalid
  • URLfield 网址判断

  • 默认的Widget:URLInput
  • 空值:''(一个空字符串)
  • 规范化为:一个Unicode 对象。
  • 验证给定值是有效的URL。
  • 错误信息的键:required, invalid

三、select/checkbox/radio

  • select 除了使用提供的,还以用CharField自定制

只适合单选也可以用下面的CharField,返回字符串,因为定制属性

xbd = fields.CharField(
        widget = widgets.Select(choices=[(1,"鸟")])
    )

也可以用下面的CharField,返回数字

xbd = fields.IntegerField(
        widget=widgets.Select(choices=[(1, "鸟")])
    )
  • Checkbox

单选时设置value属性

xbd = fields.CharField(
        widget = widgets.CheckboxInput({'value':'1'})
    )

多选时

xdb = fields.MultipleChoiceField(
            initial=[2,],
            choices=[(1, '大连'), (2, "北京")],
            widget=widgets.CheckboxSelectMultiple

    )
  • radio

单radio,值为字符串

   user = fields.CharField(
        initial=2,
        widget=widgets.RadioSelect(choices=((1,'上海'),(2,'北京'),))
    )

单radio,值为字符串

    user = fields.ChoiceField(
        choices=((1, '上海'), (2, '北京'),),
        initial=2,
        widget=widgets.RadioSelect
    )
  • 设置select 实时读取数据库内容

class tupdata(forms.Form):
    def __init__(self,*args,**kwargs):
        super(tupdata,self).__init__(*args,**kwargs)
        self.fields['xdb'].widget.choices = models.UserInfo.objects.values_list('id','usernmae')
    xdb = fields.CharField(
        widget =widgets.Select(),
        label = "111",
    )

def test_updata(reuqest):
    obj = tupdata()
    return render(reuqest,"test1.html",{'obj1':obj})

相关文章

  • django_form_表单字段速查

    一、表单常用的属性 大部分的类是继承Field所以大部分的标签都有公共的属性 use_required_attri...

  • django_Form_表单初始

    一、认识HTML表单 在HTML中,表单的作用是收集标签中的内容, ... 中间可以由访问者添加类似于文本,选择...

  • 通过SpingMVC绑定Ajax传递的JSON

    表单和文件混合:字段name=adviseInfo.firstType 单纯表单字段name=distributo...

  • ModelForm 元数据Meta

    model = UserInfo 说明表单各个字段的来源。fields变量说明在本表单类中用到的字段。如果选择所有...

  • 用户体验 | 必填还是选填?

    设计师如何选择表单字段的呈现方式会影响用户填写表单的体验。每个人都有过在网站填写表单的经历,来看下面两个表单字段设...

  • 浏览器的字段自动填充原理与取消方法

    原理:浏览器会把含有password字段的表单视为登录表单,用户名字段取离password 的input向上最近的...

  • MySQL优化总结

    建表原则 定长字段与变长字段分离,使存储空间整齐,加速查询; 常用字段与不常用字段分离 适当增加冗余字段,如一对多...

  • WTForms 字段 参数 校验

    常用字段 常用参数 常用校验 文件上传 表单提交属性 表单处理流程

  • CSS表格表单高级

    第一节 表单高级属性 表单的组成:表单域: 表单控件: 提示信息: 表单字段集 语法: 说明:相当于一个方框,...

  • 10、HTML&CSS-高级表单、表格

    每天一句: 如果你不能打败对手,那你就加入对手。 一、表单高级 表单字段集 字段级标题 上传文件框 require...

网友评论

      本文标题:django_form_表单字段速查

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