일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- string 메소드
- k-eta
- double ended queue
- 2557
- Django Nodejs 차이점
- getline
- Django의 편의성
- c++
- 장고란
- 자료구조
- Django란
- 입출력 패턴
- 시간복잡도
- 입/출력
- 엑셀
- EOF
- 표준 입출력
- iOS14
- 매크로
- vscode
- correlation coefficient
- scanf
- 구조체와 클래스의 공통점 및 차이점
- 이분그래프
- 알고리즘 공부방법
- 백준
- string 함수
- 연결요소
- UI한글변경
- 프레임워크와 라이브러리의 차이
Archives
- Today
- Total
Storage Gonie
Django (22*) Like 모델 추가, Image, Comment 모델에 ForeignKey 필드추가 본문
웹개발/인스타 클론 (1) Django
Django (22*) Like 모델 추가, Image, Comment 모델에 ForeignKey 필드추가
Storage Gonie 2019. 6. 28. 16:28반응형
아래의 작업은 images앱의 models.py에서 이뤄진다.
# images 앱에 Like 모델 추가
from ..users import models as user_models
class Like(TimeStampedModel):
""" Like Model """
creator = models.ForeignKey(user_models.User, null=True, on_delete=models.CASCADE)
image = models.ForeignKey(Image, null=True, on_delete=models.CASCADE)
# Image 모델에 ForeignKey로 creator 필드 추가
class Image(TimeStampedModel):
""" Image Model """
file = models.ImageField() # 이미지파일
location = models.CharField(max_length=140) # 촬영한 위치
caption = models.TextField() # 이미지에 대한 설명
creator = models.ForeignKey(user_models.User, null=True, on_delete=models.CASCADE)
# Comment 모델에 ForeignKey로 creator, image 필드 추가
class Comment(TimeStampedModel):
""" Comment Model """
message = models.TextField() # 댓글 텍스트
creator = models.ForeignKey(user_models.User, null=True, on_delete=models.CASCADE)
image = models.ForeignKey(Image, null=True, on_delete=models.CASCADE)
# DB에 반영
python manage.py makemigrations
python manage.py migrate
# 위 과정에서 에러가 발생했던 부분
1) You are trying to add a non-nullable field 'creator' to image without a default
- 이미 데이터가 존재하는 테이블이기 때문에 null=True 속성을 넣어줘야 한다는 의미.
- 위의 ForeignKey에 이 속성이 들어가 있는 이유이다.
2) TypeError: __init__() missing 1 required positional argument: 'on_delete'
- https://gomguard.tistory.com/101
- Django 2.0 버전 이상부터는 many to one 관계를 위해 ForeignKey를 사용할 때 on_delete=models.CASCADE 속성을
넣어줘야 한다.
- 위의 ForeignKey에 이 속성이 들어가 있는 이유이다.
반응형
'웹개발 > 인스타 클론 (1) Django' 카테고리의 다른 글
Django (24*) Admin 패널에 모델 등록하기 (0) | 2019.07.04 |
---|---|
Django (23*) User 모델에 ManyToManyField 추가 (0) | 2019.07.04 |
Django (21) Model Relationships(one to many, many to many 관계) (1) | 2019.06.28 |
Django (20*) images앱의 Image, Comment 모델 생성(Abstract base class 이용) (0) | 2019.06.27 |
Django (19*) users앱의 User 모델 설명 및 확장 (0) | 2019.06.26 |
Comments