Python/Django

[Django] Image필드 admin페이지에서 표시하기

reine94._.dev 2021. 2. 8. 11:49

Image를 Admin페이지 내 표시


models.py

class Product(models.Model):
    name = models.CharField(max_length=250)
    image = models.ImageField(upload_to='products', blank=True)
    price = models.PositiveIntegerField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

 

admin.py

  • list_display
    • 모델에서는 image필드라고 정의했지만 photo_tag() 메서드로 오버라이딩하여 사용
from django.utils.safestring import mark_safe

@admin.register(Product)
class ProductionAdmin(admin.ModelAdmin):
    list_display = ['photo_tag', 'name', 'price']

    list_display_links = ['name']

    def photo_tag(self, item):
        if item.image:
            return mark_safe('<img src={} style="width: 75px;"/>'.format(item.image.url))
        return None
    photo_tag.short_description = 'Image'

 

 

[참고블로그]

dev-mht.tistory.com/137