1. 程式人生 > >Validator 字段驗證

Validator 字段驗證

bsp 註冊 serial help 驗證密碼 param validator har 用戶名

一、單個字段驗證

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]

Validator 字段驗證