리셋 되지 말자

[CSAPI] Django Origin Image 모델 추가 본문

프로젝트

[CSAPI] Django Origin Image 모델 추가

kyeongjun-dev 2021. 10. 5. 19:19

Origin Image model

먼저 image 파일을 업로드할 수 있도록 model 을 추가하고, django admin 페이지에서 확인한다.

 

Dockerfile 에서 pillow 패키지를 설치하도록 수정

FROM python:3.7-slim

WORKDIR /csapi
ENV PYTHONUNBUFFERED 0

RUN apt update -y
RUN apt install -y python3-dev default-libmysqlclient-dev build-essential
RUN pip install django mysqlclient pillow    

COPY . .
RUN python manage.py makemigrations
RUN python manage.py migrate --run-syncdb    

CMD python manage.py runserver 0.0.0.0:8000

 

config/settings.py 에 media 파일들을 저장할 디렉토리와 전달할 url 정보 추가

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media/'

 

config/urls.py 에 urlpatterns 에 추가

urlpatterns +=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

csapi/models.py 에 OriginImage model 추가 - media/origin_images 에 저장되도록 지정. User 를 외래키로 지정하고, 외래키로 지정된 User 가 삭제되면 같이 삭제되도록 지정.

from django.db import models
from django.contrib.auth.models import User  

class OriginImage(models.Model):
    auth_user = models.ForeignKey(User, on_delete=models.CASCADE)
    origin_image = models.ImageField(upload_to = 'origin_images/')

 

csapi/admin.py 에 OriginImage model 을 등록

from django.contrib import admin
from .models import OriginImage

admin.site.register(OriginImage)

 

관리자 페이지에서 등록된 origin image 확인

 

origin image 추가 시, auth user 와 파일을 업로드 하는걸 확인

 

 

Comments