2017-08-29 67 views
0

我已经在这个问题上阅读了几篇文章,并尝试了很多方法 - 最终我返回了Django文档。Django在管理员列表中上传了文件

我试图让上传的图片出现在管理列表...

我的models.py(基于信息从这里:Django Docs

from django.db import models 
from django.contrib import admin 
from django.utils.html import format_html 

class File(models.Model): 
    file = models.ImageField() 
    description = models.CharField(max_length=200) 
    def __str__(self): 
     return self.description 
    def image_tag(self): 
     return format_html(
      '<img src="{}" />', self.file 
     ) 

class FileAdmin(admin.ModelAdmin): 
    list_display = ('image_tag', 'description')  

这可悲的是,然而,什么都不做......

我试图把任意的HTML以及 - 以防万一文件的URL是坏的......但没有任何变化。

任何想法将不胜感激 - 现在非常沮丧。

+0

你试过'self.file.url'作为'src'吗? –

回答

0

你也可以试试这个代替format_html

更新models.py如下:

from django.utils.safestring import mark_safe 

def image_tag(self): 

    if self.file: 
     return mark_safe('<img src="%s" width="200" height="200"/>' % self.file) 
    else: 
     return '(No image found)' 

image_tag.short_description = 'Thumb' 

在你admin.py附加:

list_display= ('image_tag',) 

还有一个包django-imagekit这可有帮助。

+0

不 - 不幸的是,那个人不幸工作。这与我在其他人发现的非常相似 - 但似乎我上面概述的方法是针对当前版本(1.11)...但是...也不起作用。 – Funktion

+0

你可以用'mark_safe'试试。我已经在上面更新了我的答案。 –

+0

另外,检查媒体网址是否正确。 –