Django Admin不显示Imagefield中的图像

时间:2014-11-12 03:10:42

标签: python django image

我想显示像Django admin listview Customize Column Name这样的图片。 我检查了Django Admin Show Image from ImagefieldDjango - Display ImageFieldDjango - How can I display a photo saved in ImageField?

这是我的models.py和admin.py。

#models.py
class Movie(models.Model):
    id = models.IntegerField(primary_key=True)
    master_id = models.IntegerField()
    url = models.CharField(max_length=100)
    cover = models.CharField(max_length=100)
    tittle = models.CharField(max_length=50)
    duration = models.CharField(max_length=10)
    click = models.IntegerField()
    platform_time = models.DateTimeField()
    platform_type = models.IntegerField()
    entry_date = models.DateTimeField()
    enable = models.IntegerField()
    def image_tag(self):
        return u'<img src="%s" />' % self.cover
    image_tag.short_description = 'Image'
    image_tag.allow_tags = True
    class Meta:
        managed = False
        db_table = 'movie'

#admin.py
class MovieAdmin(admin.ModelAdmin):
    list_display = ('id', 'master_id', 'url', 'cover', 'tittle', 'duration', 'click', 'platform_time', 'platform_type', 'entry_date', 'enable')
    search_fields = ('id', 'tittle',)
    list_filter = ( 'enable', )
    readonly_fields = ( 'image_tag', )

现在,这是我界面的一部分,没有image_tag字段。此外,如果我将封面字段修改为image_tag,则封面字段仍然不是图像可见。

My interface

3 个答案:

答案 0 :(得分:1)

您必须使用ImageField代替CharField而不是CharField,并且还要更改image_tag返回行:

cover = models.ImageField(upload_to = "images") #use the directory you want here
def image_tag(self):
    return u'<img src="%s" />' % self.cover.url

此外,您还必须将image_tag字段添加到list_display。 并确保django可以找到upload_to目录。

答案 1 :(得分:0)

'image_tag'中没有<img...>列(其中包含list_view)。

答案 2 :(得分:0)

我在django 2.0.6的django-admin列表视图中写了关于图像的有效答案。

这是我的答案的链接: Django: Display image in admin interface

我希望它将对某人有所帮助。