본문 바로가기

Legacy(~18.10)/Django

[Django Tips]Custom Validation 만들기

반응형

모델에 필드에서 Validation 하는 방법 - Custom Validation 만들기

# models.py

...
from django.core.exceptions import validationError

def validate_email(value):
   if not "@" in value:
       raise ValidationError("Not a valid email")
   else:
       return value
       
def validate_kwon(value):
   if not "kwon" in value:
       raise ValidationError("Not Kwon!")
   else:
       return value


class Post(models.Model):
   email = models.CharField(max_length=240, validators=[validate_email, validate_kwon] null=True, blank=True)
   
   #해당 email 필드는 "@" 이가 없거나 문자열에 "kwon" 이 들어가지 않으면 오류를 발생 시킨다.

위와 같이 validate 메소드를 만들어서, valdation을 적용하고 싶은 모델 필드에 리스트의 요소로 추가 시켜주면된다.

  • 위의 방법은 models.py에서 validation 메소드를 적어놨는데, 대개는 validation.py를 따로 만들고, validation 메소드 끼리 모아둔다.


반응형