product = models.ForeignKey(Product, on_delete=models.CASCADE, unique=True)
product = models.OneToOneField(Product, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
on_delete=models.CASCADE
= 바라보는 객체가 사라졌을때 이 변수또한 사라진다는 의미입니다. 게시글과 댓글을 예시로 게시글이 사라지면 댓글이 사라지는 것과 같습니다.
ForeignKey + unique=True
가 붙으면 이는 OneToOneField
를 사용하는 것과 같습니다.
DateTimeField(auto_now_add=True)
= auto_now_add
가 붙으면 생성된 날짜를 생성합니다.
models.DateTimeField(auto_now=True)
= 저장 될 때마다 날짜를 생성합니다.
from django.contrib.auth.decorators import login_required
@login_required
@transaction.atomic
@login_required
= 로그인이 되어있어야 이 기능을 사용할 수 있습니다. 이 데코레이터를 사용하기 위해서는 모듈을 import
해야합니다.
@transaction.atomic
= 함수가 완전하게 끝나야 생성함, 게시글 하나에 댓글하나가 무조건 생성되는 함수를 만들었다 가정했을때, 게시글작성 부분까지는 정상 작동하다가 댓글부분에서 오류가 나면 게시글은 작성되고 댓글은 들어가지 않게됩니다. 그때 @transaction.atomic
를 사용해서 만들었다면, 함수가 온전하게 끝나지 않았기 때문에 게시글도 생성되지 않습니다.