반응형
from django.db import models
# Create your models here.
class Restaurant(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=200)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Reviews(models.Model):
point = models.IntegerField()
comment = models.CharField(max_length=500)
restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
▶ point = models.IntegerField()
: 정수형 변수 point 선언
▶ comment = models.CharField(max_length=500)
: 최대 글자수 500자인 변수 comment 선언
▶ restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE)
: 식당 모델과의 릴레이션을 정의
→ on_delete CASCADE로 지정해 식당이 삭제되면 같이 삭제됨
▶ created_at = models.DateTimeField(auto_new_add=True)
: 글 작성시(이 모델의 데이터 저장시) 생성 시각을 created_at 변수로 선언
▶ updated_at = models.DateTimeField(auto_now=True)
: 글 수정시 시각을 updated_at 변수로 선언
Many-to-One 관계에서 Review(Many) : Restaurant(One)으로 이루어짐
→ 종속되는 모델인 Review에 ForeignKey로 상위 모델을 정의해서 릴레이션을 구현
* on_delete 정책 *
CASCADE : 연관된 식당 레코드가 삭제될 때 등록된 모든 댓글이 삭제됨
SET_NULL : restaurant 속성이 NULL 데이터로 채워짐
SET_DEFAULT : 기본 값으로 업데이트함
DO_NOTHING : 아무것도 하지 않음
반응형
'Django > inflearn' 카테고리의 다른 글
리뷰 삭제 구현하기 (0) | 2022.12.04 |
---|---|
리뷰 등록 구현하기 (0) | 2022.12.03 |
Relation 개요 (2) | 2022.11.30 |
D : 게시글 삭제 구현하기 (0) | 2022.11.12 |
R : 게시글 상세 화면 구현하기 (0) | 2022.11.11 |