250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 꼭읽어봐야할책
- 일일투자금액
- Face Detection
- db
- 지방사람이보는서울사람
- UPSERT
- Python
- 공작과개미
- 네인생우습지않다
- 중용
- OpenCV
- delete
- ChatGPT
- 클라우드
- linux명령어
- 성선택
- 옹졸함
- 훌륭한모국어
- Git
- php
- 비밀번호변경
- 독후감
- todolist
- 헬레나크로닌
- 다산의마지막습관
- MySQL
- git 업로드
- 나만의주식5법칙
- 서울로가자
- Django
Archives
- Today
- Total
Terry Very Good
[Django manage.py] 다른 모델을 참조하는 ForeignKey의 4가지 종류 본문
728x90
반응형
python & django
from django.db import models
# Create your models here.
class Category(models.Model):
category_name = models.CharField(max_length = 100)
class Restaurant(models.Model):
category = models.ForeignKey(Category, on_delete=models.SET_DEFAULT, default=3)
restaurant_name = models.CharField(max_length = 100)
restaurant_link = models.CharField(max_length = 500)
restaurant_content = models.TextField()
restaurant_keyword = models.CharField(max_length = 50)
|
cs |
Category모델이 생성되어있는 형태에서 Restaurant 모델을 생성했다.
여기서 Restaurant.category는 Category table에 존재하는 Data만 값으로 받는다는 것이다.
on_delete(참조하려는 객체가 사라졌을 때)에는 4가지 형태가 있는데, 알아보도록 하겠다.
1. CASCADE: 참조되는 요소가 삭제되면, 이를 참조하는 요소도 같이 삭제.
2. PROTECT: 참조되는 요소를 삭제하려할 때, 해당 요소를 참조하는 요소가 하나라도 존재하면 ProetecedError 발생.
3. SET_NULL: 참조되는 요소가 삭제되 떄, 이를 참조하는 요소에서 참조값은 NULL로 설정.
- 이를 사용하려면 "null=True"(해당 값을 null로 가질 수 있다)라는 옵션 설정 필요
4. SET_DEFAULT: 참조되는요ㅗ가 삭제될 때 이를 참조하는 요소에 대해서 DEFAULT값(미리 설정해둔 참조값)으로 설정.
- category = models.ForeignKey(Category, on_delete=models.SET_DEFAULT, default=3) 라면,
restaurant요소가 참조하는 category가 삭제딜 때 자동으로 id값이 3인 category를 참조하도록 한다.
728x90
반응형