Django 管理员并显示缩略图
问题描述
我正在尝试在 Django 管理中显示缩略图,但我只能看到图像的路径,而不是渲染的图像.我不知道我做错了什么.
I'm trying to show thumbnail images in Django admin, but I can only see the path to the images, but not the rendered images. I don't know what I'm doing wrong.
服务器媒体网址:
from django.conf import settings
(r'^public/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
功能模型:
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
admin.py:
class ImagesAdmin(admin.ModelAdmin):
list_display= ('image_img','product',)
结果:
<img src="http://127.0.0.1:8000/public/product_images/6a00d8341c630a53ef0120a556b3b4970c.125x125.jpg" />
解决方案
这在 photologue(参见 models.py
,稍作修改以删除不相关的内容):
This is in the source for photologue (see models.py
, slightly adapted to remove irrelevant stuff):
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):
,像这样:
The list_display
bit looks identical too, and I know that works. The only thing that looks suspect to me is your indentation - the two lines beginning image_img
at the end of your models.py
code should be level with def image_img(self):
, like this:
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
相关文章