본문 바로가기

Web개발/DJANGO

Django : Common Model활용하기

반응형

출처 :

www.andrew-tremblay.com/blog/django-common-models/

stackoverflow.com/questions/2414473/how-to-assign-currently-logged-in-user-as-default-value-for-a-model-field

 

흔히 모델 작업을 하다보면, 다음과 같은 내용들을 처리하는데 어려움을 겪는다.

 

  • 오브젝트의 unique identifier  : id
  • 오브젝트 생성시점               : created_at
  • 오브젝트 생성한 유저           : created_by
  • 오브젝트 업데이트 시점        : updated_at
  • 오브젝트 업데이트한 유저     : updated_by

해당 내용은 이미 Django의 기본 Model에 들어가있으며(Common Model) 다음과 같이 사용할 수 있다.

1
2
3
4
5
6
7
8
9
10
class Application(models.Model):
    property = models.ForeignKey(Property, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='applications', editable=False, null=True)
    ...
 
    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        if not self.user:
            self.user = self.created_by
            super(Application, self).save(*args, **kwargs)

 

반응형

'Web개발 > DJANGO' 카테고리의 다른 글

Django : raw query 사용하기  (0) 2020.07.11
Django : Form에서 현재 사용자 확인하기  (0) 2020.07.03
Django 3.x App이름 바꾸기  (0) 2020.06.22
Django REST Framework 간단설정  (0) 2020.06.15
Django Permission  (0) 2020.06.13