MEDIA URL

dooh kim·2020년 9월 3일
0

instagram

목록 보기
1/1

members/models.py

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


class User(AbstractUser):
    pass

post/models.py

from django.db import models
from members.models import User


class Post(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    content = models.TextField(blank=True)
    like_users = models.ManyToManyField(
    				User, 
    				related_name='like_post_set')
    created = models.DateTimeField(auto_now_add=True)

class PostImage(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    image = models.ImageField(upload_to='posts/images')


class PostComment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    content = models.TextField()


class PostLike(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)

uploaded_to

  • MEDIA_ROOT 파일 밑에 저장 경로를 지정하는 옵션이다.

settings code 추가

settings.py

# User-uploaded static files의 기본 경로
MEDIA_ROOT = os.path.join(ROOT_DIR, 'media')
MEDIA_URL = '/media/'

$ pip install pillow

urls.py

from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]


urlpatterns += static(
# URL 앞부분의 /media/이면
    prefix='/media/',
    # document_root위치에서 나머지 path에 해당하는 파일을 리턴
    document_root=settings.MEDIA_ROOT,

)

HTTP Scheme + HOST+ MEDIA_URL + FileField의 실제 값

https:// + localhost:8000 + /media/ + posts/images/xxx.jpg

참고

profile
testify to the light

0개의 댓글