본문 바로가기

Legacy(~18.10)/Django

[Django Tips]save 메소드 오버라이딩

반응형

save 메소드 오버라이딩

부모 클래스(models.Model)에 정의된 save method를 오버라이딩 해서 커스템 해줄 수 있다.

from django.utils.text import slugify

def Post:
  ...
  ...
   slug = models.SlugField(null=True, blank=True)
  ...
  ..
   
   def save(self, *args, ***kwargs):
       if not self.slug:
           self.slug = slugify(self.title)
       super(Post, self).save(*args, **kwargs)

오버라이딩한 save 메소드는 개발자가 커스터마이징 해서 사용할 수 있다.

위의 경우는 저장을 하기 전에, slug가 일치하는지에 대해서 확인을 한 후 없으면 슬러그화된 title을 저장하는 방식이다.

그외에도 저장 전에 여러가지 작업들을 해줄 수 있다.

반응형