Django for KN(Koinonia)
- 해당 문서는 사귐의 교회 청소년부 출석부 프로젝트를 위한 Django 학습 내용과 개발 과정을 기록함
1 : N 관계-models.ForeignKey
- ForeignKey : 모델 간의 관계를 나타내는 필드, 부모-자식 관계를 형성
- 1명의 유저(User)가 쓰는 다수의 포스팅(Post)
1명의 유저(User)가 쓰는 다수의 댓글(Comment) 1개의 포스팅(Post)에 다수의 댓글(Comment)
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
class Comment(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
message = models.TextField()
- to : 대상모델
- on_delete : Record 삭제 시 Rule
- CASCADE : FK로 참조하는 다른 모델의 Record도 삭제.
올바른 User Model 지정
AUTH_USER_MODEL = 'auth.User'
from django.db import models
from django.conf import settings
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
- 올바른 User Model = Global User Model
- Local User Model과 구분되어 사용한다.
FK에서의 ReverseName
- reverse 접근 시의 속성명 : 디폴트는 "모델명소문자_set"
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100) content = models.TextField()
class Comment(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
message = models.TextField()
>>> comment.post
>>> post.comment_set.all() == Comment.objects.filter(post=post)