我最终得到了使用此处代码的图像:http://www.psychicorigami.com/2009/06/20/django-simple-admin-imagefield-thumbnail/
我创建了一个admin_image_widget.py 文件:
from django.contrib.admin.widgets import AdminFileWidget
from django.utils.translation import ugettext as _
from django.utils.safestring import mark_safe
class AdminImageWidget(AdminFileWidget):
def render(self, name, value, attrs=None):
output = []
if value and getattr(value, "url", None):
image_url = '/media/dynamic/' + value.url
file_name=str(value)
output.append(u' <a href="%s" target="_blank"><img src="%s" alt="%s" style="height: 100px; width: 100px;"/></a> %s ' % \
(image_url, image_url, file_name, _('Change:')))
output.append(super(AdminFileWidget, self).render(name, value, attrs))
return mark_safe(u''.join(output))
(注意:我修改了图像 URL 和图像标签。使用静态文件代码而不是硬编码路径,我可能会做得更好。我调整了图像标签以限制缩略图的大小。 )
然后我将我的衬衫管理类移到了 admin.py 中并成功了:
class ShirtAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
if db_field.name == 'front_image':
request = kwargs.pop("request", None)
kwargs['widget'] = AdminImageWidget
return db_field.formfield(**kwargs)
return super(ShirtAdmin,self).formfield_for_dbfield(db_field, **kwargs)
admin.site.register(Shirt, ShirtAdmin)
这让我得到了管理员缩略图!感谢 Psychic Origami 博客提供的代码 sn-p,并感谢 Bigcortex 让我找到了正确的方向。