03. photo upload (media)

강재구·2021년 4월 27일
0

Django Admin Page Custom

목록 보기
3/3

Media

class Post(models.Model):
	photo = models.ImageField(blank=True, upload_to="")

pillow 라이브러리가 설치되어있어야함.
# admin.py

from django.utils.safestring import mark_safe

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ['...', '...', 'photo_tag', ]
    list_display_links = []
    list_filter = []
    search_fields = []
    
    def photo_tag(self, post):
    	if post.photo:
        	return mark_safe(f'<img src="{post.photo.url}"  style="width: 2rem;" />')
        return None



  • Upload_to
    - 위 속성에 %Y/%m/%d 처럼 미디어파일이 업로드되는 문자열을 지정
    - 또는 아래 사진처럼 문자열을 반환하는 함수를 지정해도된다.
        
# urls.py

from django.conf import settings
from django.conf.urls.static import static

# 중략

if settings.DEBUG:
	urlpatterns += static(settings.MEDIA_URL,
	         	      document_root=settings.MEDIA_ROOT)
  • File Upload Handler

파일 업로드 크기 관련 설정
settings.FILE_UPLOAD_MAX_MEMORY_SIZE
-> default 2.5MB

profile
Python Backend Developer @Fitpet

0개의 댓글