如何在Django管理页面中展示图片

6
这个问题已经被问过了,但是那并没有解决我的问题。我已经搜索了很多,但是我无法在管理面板中显示图像缩略图。
我的models.py文件如下:
thumb_impression=models.ImageField(blank=True, null=True)
cust_pic=models.ImageField(blank=True, null=True ,)

def admin_thumbnail(self):
    return mark_safe(u'<img src="%s" />' % (self.cust_pic))

admin_thumbnail.short_description = 'Thumbnail'
# admin_thumbnail.allow_tags = True

admin_thumbnail = property(admin_thumbnail)

Admin.py 是 AccountAdmin 类的定义。
readonly_fields =  ('balance','terms_and_condition')

fieldsets =  [
    ('Account Details',{
        'fields':['cust_id','cust_first_name','cust_middle_name','cust_last_name','cust_pic']
    }),
    ('Thumbnail',{
        'fields':['cust_pic']
    }),
]

list_display = (
    'cust_first_name',

    'cust_last_name',
    'admin_thumbnail',
)

``` admin.site.register(Account, AccountAdmin) ```
``` urls.py 是 ```
urlpatterns=[
url(r'^',include(router.urls)),

url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),

我尝试了之前的解决方法,但是无法找到正确的答案。请帮助我找出解决方法,并给我一个适当的例子,以便我可以应用它。提前感谢您。
2个回答

3
def admin_thumbnail(self):
    return u'<img src="%s" />' % (self.image.url)
admin_thumbnail.short_description = 'Thumbnail'
admin_thumbnail.allow_tags = True

list_display 部分看起来也是一样的,我知道那个是有效的。唯一让我觉得可疑的是你的缩进 - 你在 models.py 代码末尾开始的两行 image_img 应该与 def image_img(self): 对齐,像这样:

def image_img(self):
    if self.image:
        return u'<img src="%s" />' % self.image.url_125x125
    else:
        return '(Sin imagen)'
image_img.short_description = 'Thumb'
image_img.allow_tags = True

2
根据文档所述,适当的定义为:django.contrib.admin.ModelAdmin.list_display
class FooAdmin(admin.ModelAdmin):
    list_display = ('bar',)

    def bar(self, obj):  # receives the instance as an argument
        return '<img src="{thumb}" />'.format(
            thumb=obj.image.url,
        )
    bar.allow_tags = True
    bar.short_description = 'sometext'


admin.site.register(Foo, FooAdmin)

显然不要将该属性添加到readonly_fields中。


无论该函数是在模型中还是在管理界面中,都没有关系。它甚至可以是模型中的属性,但在属性上设置allow_tagsshort_description有些棘手。 - GwynBleidD
我无法显示图片。请看一下我的代码。 - C P Verma
@CPVerma,为什么你在readonly_fields中添加了属性? - Hedde van der Heide
@Hedde van,我该怎么办?请详细告诉我。这段代码浪费了我5-7天的时间。 - C P Verma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接