Django로 웹 개발하기 - 5. Post 모델 만들기
이 글은 fast_campus의 파이썬 웹 개발 수업을 듣고 정리한 내용으로, Django에서 Post 모델을 만들어 보자.
DB 모델링 설계하기
- 어떤 필드가 필요한지 생각한다.
- 생각 정리가 되면 적어본다.
- 각 필드가 어떤 타입이 되어야하는지 생각 혹은 논의한다.
Post 모델 만들기
1. 앱 만들기(blogs, helpers)
- 글 쓰기, 댓글, 공감 버튼 등등의 기능
python manage.py startapp blogs
python manage.py startapp helpers
앱을 만들었으면 settings.py 에 만든 앱 추가
INSTALLED_APPS += [
...,
'helpers',
'blogs',
]
2. helpers 모델 만들기
helpers / models.py
from django.db import models
# post model등의 Base가 될 BaseModel
class BaseModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
modified_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True # Db에 table로 만들지 않도록! '이 model은 추상 클래스야'
3. blogs 모델 만들기
blogs / models.py
from django.db import models
from helpers.models import BaseModel
from users.models import User
class Post(BaseModel):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=255, blank=False)
content = models.TextField()
image=models.ImageField(blank=True, null=True)
4. migrations 생성
python manage.py makemigrations helpers을 해보면
ERRORS:
blogs.Post.image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.org/project/Pillow/ or run command "python -m pip install Pillow".
위와 같은 error 발생
- 이유 : ImageField를 사용하기 위해 필요한 Pillow library가 설치되어 있지 않음
-
해결 :
pip install Pillow python manage.py makemigrations helperspython manage.py migrate
Leave a comment