图片未显示在Django管理页面中

时间:2019-02-15 19:41:51

标签: python django

伙计们,所以我在数据库中有一个字段,其中包含图片的网址。 因此,当我检查用户或不想修改用户时,我会得到:enter image description here

所以问题是:如何显示图像而不是整个图像。

我的代码: models.py

class Person(models.Model):
    nom = models.CharField(max_length=255)
    prenom = models.CharField(max_length=255)
    age = models.IntegerField()
    photo = models.ImageField(upload_to='static/media')

    def __str__(self):
        return str(self.id)

    def image_tag(self):
        return u'<img src="/media/%s" />' % self.photo
        #return mark_safe('<img src="/static/%s" width="150" height="150" />' % (self.image))

        image_tag.short_description = 'Image'
        image_tag.allow_tags = True

admin.py:

class PersonAdmin(admin.ModelAdmin):
    list_display = ['id','nom','prenom','age','photo']


    fields = ( 'nom','prenom','age','image_tag' )
    readonly_fields = ('image_tag', )

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该使用format_html以避免转义HTML字符。

from django.utils.html import format_html


def image_tag(self):
    return format_html(u'<img src="{}" />', self.photo.url)

image_tag.short_description = 'Image'
image_tag.allow_tags = True