美文网首页
Django表单字段校验

Django表单字段校验

作者: Chaweys | 来源:发表于2020-11-01 11:09 被阅读0次

    字段校验
    字段类                校验操作                                                            错误信息关键字
    BooleanField           验证给定值是否为True                                                required
    CharField              根据maxlength和minlength选项设置校验最大,最小长度                   required,maxlength,minlength
    ChoiceField            验证给定值是否包含在选项列表中                                      required,invalid_choice
    DateField              验证数据是否为datetime.date,datetime.datetiem或日期格式的字符串    required,invalid
    TimeField              验证数据是否为datetime.time或时间格式的字符串                       required,invalid
    DecimalField           验证数据是否为小数,根据maxvalue和minvalue设置校验最大值,最小值    required,invalid,maxvalue,minvalue,maxdigits,maxdecimal_places,maxwholedigits
    FloatField             验证数据是否为浮点数,根据maxvalue和minvalue设置校验最大值,最小值  required,invalid,maxvalue,minvalue
    IntegerField           验证数据是否为整数,根据maxvalue和minvalue设置校验最大值,最小值    required,invalid,maxvalue,minvalue
    EmailField             验证数据是否为有效的电子邮件地址                                    required,invalid
    FileField              根据maxlength和allowempty_file设置验证最大长度和是否允许空文件      required,invalid,missing,empty,max_length
    FilePathField          验证数据是否包含在选项列表中                                        required,invalid_choice
    ImageField             验证是否上传了图片文件                                              required,invalid,missing,empty,invalid_image
    GenericIPAddressField  验证数据是否为有效的IP地址                                          required,invalid
    MultipleChoiceField    验证数据是否存在于选项列表中                                        required,invalidchoice,invalidlist
    RegexField             验证数据是否与某个正则表达式匹配                                    required,invalid
    UUIDField              验证数据是否为有效的UUID字符串                                      required,invalid
    
    
    例如:默认所有表单字段的required属性为True,表示该字段不接收空值
    
    
    自定义异常:
    chapter7\app\views.py
    from django import forms
    from django.core.exceptions import ValidationError
    #定义自定义抛出异常函数
    def validata_lt(value):
        if "<" in value or ">" in value:
            raise ValidationError("不允许小于号或大于号")
        
    #定义字段,引用自定义异常函数
    str=forms.CharField(validators=[validata_lt])
    str.clean("2<3")
    
    错误信息:
    Traceback (most recent call last):
      File "E:/HDCZU_Test/chapter7/app/views.py", line 40, in <module>
        str.clean("2<3")
      File "D:\Python3.5\lib\site-packages\django\forms\fields.py", line 150, in clean
        self.run_validators(value)
      File "D:\Python3.5\lib\site-packages\django\forms\fields.py", line 141, in run_validators
        raise ValidationError(errors)
    django.core.exceptions.ValidationError: ['不允许小于号或大于号']
    

    相关文章

      网友评论

          本文标题:Django表单字段校验

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