我正在尝试在django admin中将缩略图添加到列表视图。
这是我的应用程序的admin.py,我到此为止:
from django.contrib import admin
from .models import Image
from django import forms
from django.db import models
class ImageAdmin(admin.ModelAdmin):
list_display = ("label","tag","order",'Edit','image_img')
list_editable= ("order",)
list_filter = ('tag',)
search_fields = ('tag', 'label')
ordering = ['-order']
list_display_links = ('Edit', )
def Edit(self, obj):
return "Edit"
def image_img(self,obj):
if obj.pic:
return '<img src="%s" height="100px"/>' % obj.pic.url
else:
return 'No_image'
image_img.short_description = 'Image'
image_img.allow_tags = True
admin.site.register(Image,ImageAdmin)
我的图片对象称为“图片”。如果我只是将其添加到列表视图,那么django将返回具有完整路径的链接。我正在寻找列表视图的模板,以便可以添加安全过滤器,但找不到它。还有其他想法如何实现吗?
答案 0 :(得分:2)
如果您使用的是Django> 2.0,则可以使用News
装饰器将例程标记为安全:
mark_safe()
它也可以用作功能:
from django.utils.safestring import mark_safe
@mark_safe
def image_img(self,obj):
if obj.pic:
return '<img src="%s" height="100px"/>' % obj.pic.url
else:
return 'No_image'
在旧版本的Django中,我相信您可以将def image_img(self,obj):
if obj.pic:
return mark_safe('<img src="%s" height="100px"/>' % obj.pic.url)
else:
return 'No_image'
选项设置为true:
allow_tags