FrameWork/Django

mark_safe을 통해 어드민 페이지에서 이미지 나타내기

jheaon 2023. 3. 5. 20:51

 

어드민페이지에서 이미지 나타내기

Django admin에서 list_display을 통해 해당 model의 img을 표현하고 싶다면 다음과 같이 작성한다. 

from django.contrib import admin
from .models import Post

from django.utils.safestring import mark_safe


@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    
    list_display = ['pk', 'photo_view','message']
    
    def photo_view(self, obj):
        return mark_safe(f"<img src='{obj.photo.url}'>")

 

 

django는 기본적으로 autoscape (html 파일이 아닌 외부로부터의 코드를 모두 escape화 시키는 것을 의미)가 활성화 되어있기 때문에 img 태그를 사용을 해도 보이지 않고 해당 문자열만 반환된다. 

 

따라서 해당 값을 태그로 받아드리게 하기 위해서 django.utils.safestring에서 제공하는 mark_safe을 이용하여 값을 넘겨주어 나타내어 준다면, 태그에 이미지가 뜨도록 설정 할 수 있다. 

'FrameWork/Django'의 다른글

  • 현재글 mark_safe을 통해 어드민 페이지에서 이미지 나타내기

관련글