在Django管理中显示img

时间:2018-12-16 15:12:45

标签: python django web django-models django-admin

我正试图在django admin中显示图像。我尝试使用此代码

  

admin.py

@admin.register(SampleImages)
class CategoryAdmin(admin.ModelAdmin):
    readonly_fields = ['image_tag']

以及 models.py

class SampleImages(models.Model):
    image = models.ImageField(upload_to='images/tile_images')

    def image_tag(self):
        return mark_safe('<img src="{}" width="150" height="150"/>'.format(self.image))

    image_tag.short_description = 'Image'

但是图像没有显示,我检查了html并没问题。

<img src="images/tile_images/150x150.gif" width="150" height="150">

在django管理员中,当我单击图像网址时说

  

对ID为“ 1 / change / images / tile_images / 150x150.gif”的图像进行采样   不存在。也许它被删除了?

并且图像存在于我的 images / tile_images 文件夹中。 有人可以帮忙吗?。

1 个答案:

答案 0 :(得分:0)

输出图像的src时,请确保使用图像字段的url属性:

return mark_safe('<img src="{}" width="150" height="150"/>'.format(self.image.url))

这将确保URL正确指向图像在MEDIA_ROOT中的位置。