데이터 분석 기술 블로그

DB에 대하여(7)_Article & User 모델 관계 설정 (feat. Django) 본문

DB

DB에 대하여(7)_Article & User 모델 관계 설정 (feat. Django)

데이터분석가 이채은 2024. 4. 22. 23:44

Article(N) - User(1)

0개 이상의 게시글은 1명의 회원에 의해 작성될 수 있습니다.

 

Comment(N) - User(1)

0개 이상의 댓글은 1명의 회원에 의해 작성될 수 있습니다.

 

1. Article & User

1-1 모델 관계 설정

User 외래 키 정의

# articles/models.py

from django.conf import settings


class Article(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=10)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

1-2 User 모델을 참조하는 2가지 방법

django 프로젝트의 '내부적인 구동 순서'와 '반환 값'에 따른 이유로 두 가지 방법이 있습니다. 우리가 기억해야 하는 것은 User 모델은 직접 참조하지 않는다는 것입니다.


1-3 Migration

기본적으로 모든 컬럼은 NOT NULL 제약조건이 있기 때문에 데이터가 없이는 새로운 필드가 추가되지 못합니다. 즉, 기본값 설정이 필요합니다.

1을 입력하고 Enter을 진행합니다. (다음 화면에서 직접 기본 값을 입력합니다.)


추가되는 외래키 user_id에 어떤 데이터를 넣을 것인지 직접 입력해야 합니다.

마찬가지로 1을 입력하고 Enter을 진행합니다. 그러면 기존에 작성된 게시글이 있다면 모두 1번 회원이 작성한 것으로 처리됩니다.


migrations 파일 생성 후 migrate를 진행합니다.


article 테이블의 user_id 필드 생성을 확인합니다.