모델 ForeignkeyField의 on_delete 옵션 정리
1. CASCADE
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
이 포스트의 작성자가 데이터베이스에서 삭제되었을 때, 이 포스트도 같이 삭제한다.
2. PROTECT
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.PROTECT)
이 포스트의 작성자가 데이터베이스에서 삭제될때 삭제되지 않도록 ProtectedError를 발생시킨다.
3. SET_NULL
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
이 포스트의 작성자가 데이터베이스에서 삭제될때 ForeignKeyField 값을 null로 바꾼다. 따라서 이에 필요한 또다른 옵션은 null=True이다.
4. SET_DEFAULT
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.SET_DEFAULT, default=1)
이 포스트의 작성자가 데이터베이스에서 삭제될때 ForeignKeyField 값을 default로 바꾼다. 따라서 이에 필요한 또다른 옵션은 default=1이다.
'컴퓨터 > Django' 카테고리의 다른 글
ajax로 넘긴 json 형식을 django에서 저장하기 (0) | 2022.08.02 |
---|---|
모델 필드 정의시 언제 널을 쓰고 언제 공백을 쓸 것인가 (0) | 2022.07.15 |
Q객체 (0) | 2022.07.12 |