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