TIL

손성수·2023년 6월 6일

시리얼라이저 데이터 검증

class UserSerializer(serializers.ModelSerializer):
    """ 유저 회원가입, 업데이트 시리얼 라이저 """
    .... 생략

    def validate(self, element):
        """ email,password,username 검사 """
        result = ValidatedData.validated_user_data(**element)
        if not result[0]:
            raise serializers.ValidationError(result[1])
        return element

    ... 생략
  • validate 메서드를 정의하여 전달받은 데이터를 검증하는 메서드를 만들었다.
	@classmethod
    def validated_user_data(self,**kwargs):
        """ 이메일,유저네임,비밀번호 검증 """
        if not self.validated_email(kwargs.get('email')):
            return [False,"이메일 정보가 올바르지 않습니다."]
        elif not self.validated_nickname(kwargs.get('nickname')):
            return [False,"닉네임이 올바르지 않습니다."]
        elif not self.validated_password(kwargs.get('password')):
            return [False,"비밀번호가 올바르지 않습니다."]
        return [True,"유효성 검사에 통과했습니다."]
  • @classmethod
    객체 지향을 위해 검증 메서드를 클래스로 묶어놓았는데
    classmethod를 이용하여 객체를 생성하지 않고도 접근할 수 있다.
profile
더 노력하겠습니다

0개의 댓글