03. photo upload (media)


Media

class Post(models.Model):
	photo = models.ImageField(blank=True, upload_to="")
枕庫を設置しなければなりません.
# 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