Todo List 모델 설계하기
INSTALLED_APPS 에 앱등록하기
config/settings.py 파일에 INSTALLED_APPS 안에, todo 앱을 등록해 줍니다.
settings.py 파일을 수정해주는 김에,
언어설정과, 타임존 세팅까지 해줍니다.
1 | LANGUAGE_CODE - 'ko-kr' |
모델 계획하기
내가 할일 이라는, Todo List 의 모델을 설계해 봅니다.
기본적으로, 아래와 같이 테이블로 정리된 사항들을 가지고 있었으면 좋겠습니다.
번호 | 필드명 | 설명 | 데이터타입 |
---|---|---|---|
1 | name | 내가 할일에 대한 짧은 이름 | 문자 |
2 | description | 내가 할일에 대한 정보 | 긴 문자열 |
3 | date_created | 할일 생성 날짜 | 날짜 |
4 | date_deadline | 데드라인 날짜 | 날짜 |
5 | images_related | 관련된 이미지 (선택사항) | 이미지 |
6 | files_related | 관련된 파일들 (선택사항) | 파일 |
하나의 TodoList 는, 관련된 images 와 files 필드들을 가지어,
할일에 대한 더 많은 세부정보를 첨부할수 있게 해주었습니다. 이를 모두 한 테이블에 넣기 보다는,
아래와 같이, 3가지 테이블로 나누고, 필드들을 정리해보았습니다.
TodoList | TodoList_images | TodoList_files | |||
---|---|---|---|---|---|
필드명 | 데이터 타입 | 필드명 | 데이터 타입 | 필드명 | 데이터 타입 |
name | CharField | todo | ForeignKey | todo | ForeignKey |
description | TextField | image | ImageField | file | FileField |
date_created | DateField() | ||||
date_deadline | DateField() |
하나의 Todo 는 여러개의 이미지들을 가질수 있고,
하나의 Todo 는 여러개의 파일들을 가질수 있습니다.
두 테이블은 하나의 Todo 에 ForeignKey 로 연결 됩니다.
models.py 파일 작성하기
위에서 계획했던 모델링 대로, models.py 파일을 실제로 작성해 봅니다.
저는 아래와 같이 작성해 주었습니다.
1 | from django.db import models |
Images 를 위한 패키지 Pillow 설치
모델을 다 작성한 다음, migrations 를 시도하면, 아래와 같은 오류 메시지가 뜹니다.
1 | python manage.py makemigrations |
이 에러를 해결하기 위해서는, 이미지 파일을 위한 패키지인, pillow 를 설치해야만 합니다.
아래 명령어를 실행하여, 패키지를 설치해 줍니다.
1 | pip install Pillow |
설치가 완료되었으면, makemigrations 와 migrate 를 실행하여, 데이터베이스를 생성해 줍니다.
makemigrations, migrate 해주기
python manage.py makemigrations 를 실행,
python manage.py migrate 를 실행,