• 【DRF框架】序列化组件——字段验证


    单个字段的验证

    1.在序列化器里定义校验字段的钩子方法   validate_字段

    2.获取字段的数据

    3.验证不通过,抛出异常  raise serializers.ValidationError("校验不通过的说明")

    4.验证通过,直接返回字段数据

    # 对title字段进行验证
    def validate_title(self,value):
        # 判断value是否含有敏感字段
        if "xx" in value:
            # 存在敏感字段,抛出异常并附上自定义的原因
            raise serializers.ValidationError("该字段含有敏感词")
    
        # 不存在,则直接返回
        return value

    多个字段的验证

    1.在序列化器定义validate方法

    2.attrs是所有数据组成的字典

    3.不符合抛出异常 raise serializers.ValidationError("校验不通过的说明")

    # 对多个字段进行验证
    def validate(self, attrs):
        # arrrs是数据组成的字典
    
        # 判断linux的数是否在linux分类
        if "linux" in attrs.get('title') and attrs['category_post'] == 2:
            return attrs
        else:
            raise serializers.ValidationError("图书与分类不一致")

    自定义验证器

    使用:在字段添加   validators=[自定义验证器,]

    # 自定义验证器
    def my_validate(value):
        if "xxx" in value:
            raise serializers.ValidationError("该字段包含敏感词!!!")
        else:
            return value
    title = serializers.CharField(max_length=32,validators=[my_validate,])             # 使用自定义验证器

    三者的权重:

    自定义验证器 > 单个字段的验证 > 多个字段的验证

  • 相关阅读:
    块设备驱动、bio理解
    configfs_sample.c 理解
    configfs-用户空间控制的内核对象配置
    infiniswap安装
    virtualBox环境下安装centos7,设置虚拟主机和本地主机网络互通的几个关键步骤
    知识点-web
    SpringSecutiry源码探究(DAO密码认证)
    知识点-线程
    知识点-基础
    keypoint
  • 原文地址:https://www.cnblogs.com/st-st/p/10123318.html
Copyright © 2020-2023  润新知