form表单验证字段学习总结

字段的属性梳理

最重要的字段

required

inital

widget

error_messages

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

required:是否允许为空

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

widget:指定插件

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

lable:设置一个label标签,我们之前会在input标签之前写一个label标签,这个label标签有一个for的属性,指向后面的input标签,只要点击一下lable标签的内容,则鼠标会自动跳转到input标签中

form表单的代码

user4 = forms.CharField(required=True,label="用户名",widget=widgets.TextInput(attrs={"placeholder":"密码"}))

  

前端的代码,第一个lable标签实现的效果就和obj.user4.label_tag的效果一样,会生成一个lable标签,有for的属性

        <p>
            <label for="{{ obj.user4.id_for_label }}">{{ obj.user4.label }}</label>
            {{ obj.user4.label_tag }}
            {{ obj.user4 }}
        </p>

html的代码

浏览器的效果

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  

initail:初始值

user4 = forms.CharField(required=True,initial="老鼠",label="用户名",widget=widgets.TextInput(attrs={"placeholder":"密码"}))

  

  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

help_text生成一个帮助信息

user4 = forms.CharField(required=True,initial="老鼠",label="用户名",widget=widgets.TextInput(attrs={"placeholder":"密码"}),help_text="aaaa")

  

        <p>
            <label for="{{ obj.user4.id_for_label }}">{{ obj.user4.label }}</label>
            {{ obj.user4.label_tag }}
            {{ obj.user4 }}
            {{ obj.user4.help_text }}
        </p>

  

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 show_hidden_initail:是否生成一个有默认值的隐藏的标签,主要的实际用户就是判断客户当前的输入和默认值是否一样

    user4 = forms.CharField(required=True,
                            initial="老鼠",
                            label="用户名",
                            widget=widgets.TextInput(attrs={"placeholder":"密码"}),
                            help_text="aaaa",
                            show_hidden_initial=True)

  

html代码不需要做任何修改

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 自定义匹配规则

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 disable:标签是否允许编辑

    user4 = forms.CharField(required=True,
                            initial="老鼠",
                            label="用户名",
                            widget=widgets.TextInput(attrs={"placeholder":"密码"}),
                            help_text="aaaa",
                            show_hidden_initial=True,
                            disabled=True)

  

前端页面

  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

localize:本地化,暂时不涉及

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

label_suffix设置lable标签和input标签之间的字符,默认是用冒号,通过label_suffix可以替换冒号,设置成我们想要的符号

    user4 = forms.CharField(required=True,
                            initial="老鼠",
                            label="用户名",
                            widget=widgets.TextInput(attrs={"placeholder":"密码"}),
                            help_text="aaaa",
                            show_hidden_initial=True,
                            disabled=True,
                            label_suffix="---->")

  

  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 error_messages:设置不同的错误码对应不同的报错

    u_name = forms.CharField(min_length=6,max_length=12,error_messages={"required":"用户名不能为空",
                                                                        "min_length":"最小长度为6",
                                                                        "max_length":"最大长度为12"
                                                                        

  


 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

max_length:最大长度

min_length:最小长度

min_value:最小值

max_value:最大值

可以根据上面4个在error_messages中当做错误码

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

srtip=true:是否移除空白

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

日期格式

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

choice:默认是select框

    user5 = forms.ChoiceField(
        initial=1,
        choices=[(1,"找死"),(2,"刘能"),(3,"六大脑袋")]
    )

  

且默认选中第一个,前台选中,后台拿到的字符串


 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 如果想要实现字符类型的转换可以有下面两种方法

这个只能转换为数字

    user7 = forms.IntegerField(
        initial=1,
        choices=[(1, "找死"), (2, "刘能"), (3, "六大脑袋")]
    )

 

这个可以根据函数自定义转换后的类型,这里这个x就是select框中选中的1,或者2,或者3

    user6 = forms.TypedChoiceField(
        coerce=lambda x:int(x),
        initial=1,
        choices=[(1, "找死"), (2, "刘能"), (3, "六大脑袋")]
    )

  

 


 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

猜你喜欢

转载自www.cnblogs.com/bainianminguo/p/9206672.html