• form表单组件


    1.sweetalert

    组件地址

    form组件

    form表单完成的事情,:   提供input可以提交数据, 对提交的数据进行校验,提供错误提示

    定义form组件

    from django import forms
    
    
    class RegForm(forms.Form):
        user = forms.CharField(label='用户名')
        pwd = forms.CharField(label='密码')
    

    使用

      视图中:

    form_obj = RegForm()   # 实例化form对象
    return render(request, 'reg2.html', {'form_obj': form_obj})
    

    模板中:

    form 标签加上novalidate 前端不进行校验

    {{ form_obj.as_p }}   ——》  生成所有的p标签   label  input
    
    {{ form_obj.errors }}   ——》所有字段的错误
    
    {{ form_obj.user }}   ——》 该字段的input框
    {{ form_obj.user.label }}   ——》 该字段的label  中文提示
    {{ form_obj.user.id_for_label }}   ——》 该字段的id
    {{ form_obj.user.errors }}   ——》 该字段的所有的错误信息
    {{ form_obj.user.errors.0 }} ——》 该字段的第一个的错误信息
    

    字段和参数

    1. 常用的字段

      CharField   input

    ChoiceField	select框
    MultipleChoiceField	  多选框
    

         2. 字段的参数:

    required=True,               是否允许为空
    
      widget=None,                 HTML插件
    
      label=None,                  用于生成Label标签或显示内容
    
      initial=None,                初始值    
    
      error_messages=None,         错误信息 {'required': '不能为空', 'invalid': '格式错误'}
    
      validators=[],               自定义验证规则
    
      disabled=False,              是否可以编辑
    

      

       3. 内置校验

    ​     required=True,min_length=8,max_length=12,
    1. 自定义的校验(自定义校验器)

      1. 定义函数

    from django.core.exceptions import ValidationError
    def check(value):
        if 'alex' in value:
            raise ValidationError('敏感词汇,不符合社会职业核心价值观')
    validators=[check]
    

      

    from django.core.validators import RegexValidator
    validators=[RegexValidator(r'^1[3-9]d{9}$', '格式不正确')]
    

      

    流程:

    ​ form_obj.is_valid() 是否通过校验

    ​ form_obj.cleaned_data 经过校验的合格的数据

    1. 局部钩子

      定义一个放法 clean_字段名(self,)的方法,如果不通过校验规则,要抛出异常ValidationError,如果通过校验规则,返回通过校验的值

    def clean_user(self):
        value = self.cleaned_data.get('user')
        if 'alex' in value:
            raise ValidationError('敏感词汇,不符合社会职业核心价值观')
    
        return value
    
    1. 全局钩子

    定义一个放法 clean(self)的方法,如果不通过校验规则,要抛出异常ValidationError,还可以自己使用self.add_error('re_pwd', '两次密码不一致!!@!')添加错误信息。如果通过校验规则,返回所有通过校验的值

    def clean(self):
        pwd = self.cleaned_data.get('pwd')
        re_pwd = self.cleaned_data.get('re_pwd')
    
        if pwd != re_pwd:
            self.add_error('re_pwd', '两次密码不一致!!@!')
            raise ValidationError('两次密码不一致')
    
        return self.cleaned_data
    

      

      

     

      

  • 相关阅读:
    solidworks中的一些标注尺寸的技巧
    SolidWorks 2-8草图绘制的一般过程
    SolidWorks 2-7 草图的约束【课程来自虎课网】
    SolidWorks 2-5 草图的编辑
    HTML 文本格式化实例--实体
    今天长进之redis的学习
    初步了解Quartz
    职场风云3
    内网穿透
    职场风云2
  • 原文地址:https://www.cnblogs.com/xihuanniya/p/10111283.html
Copyright © 2020-2023  润新知