Validator 字段驗證

1、單個字段驗證ui

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']

2、自定義驗證spa

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']
相關文章
相關標籤/搜索