• Validator 字段验证


    一、单个字段验证

    class UserRegSerializer(serializers.ModelSerializer):
        """
        用户注册
        """
        # 验证用户名是否存在
        username = serializers.CharField(label='用户名', help_text='用户名', required=True, allow_blank=True,
                                         validators=[UniqueValidator(User.objects.all(), message='用户已存在')])
    
        class Meta:
            model = User
            fields = ['username', 'phone', 'password']

    二、自定义验证

    def phone_validate(value):
        """
        验证手机号
        :param value: 手机号
        :return: 手机号/错误信息
        """
        if not re.match(REGEX_PHONE, value):
            raise serializers.ValidationError('手机号不合法')
        else:
            return value
    
    
    def password_validate(value):
        """
        验证密码
        :param value: 密码
        :return: 密码/错误信息
        """
        if len(value) < 6:
            raise serializers.ValidationError('密码不能少于6位数')
        else:
            return value
    
    
    class UserRegSerializer(serializers.ModelSerializer):
        """
        用户注册
        """
    
        # 验证用户名是否存在
        username = serializers.CharField(label='用户名', help_text='用户名', required=True, allow_blank=True,
                                         validators=[UniqueValidator(User.objects.all(), message='用户已存在')])
        # 验证手机号是否合法
        phone = serializers.CharField(label='手机号', help_text='手机号', required=True, allow_blank=True,
                                      validators=[phone_validate,])
        # 验证密码是否大于6位
        password = serializers.CharField(label='密码', help_text='密码', required=True, allow_blank=True,
                                      validators=[password_validate, ])
    
        class Meta:
            model = User
            fields = ['username', 'phone', 'password']
  • 相关阅读:
    题解 P2280 【[HNOI2003]激光炸弹】
    线段树求逆序对
    题解 P3378 【【模板】堆】
    动态规划-最大算式 蓝桥杯ALGO-116
    动态规划-树形动态规划-结点选择
    Trie树(字典树)-题解 P2580 【于是他错误的点名开始了】
    清北学堂-DAY2-数论专题-中国剩余定理(CRT)
    听课笔记--DP--Authentication Failed
    听课笔记--DP--最大子矩阵和
    多媒体基础
  • 原文地址:https://www.cnblogs.com/mxsf/p/10674980.html
Copyright © 2020-2023  润新知