[TIL #17] Django 관련

안떽왕·2023년 4월 10일
0

Today I Learned

목록 보기
17/76
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를 사용해서 만들었다면, 함수가 온전하게 끝나지 않았기 때문에 게시글도 생성되지 않습니다.

profile
이제 막 개발 배우는 코린이

0개의 댓글