Django admin and showing thumbnail images
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
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
Update v. 1.9
Note that in Django v.1.9
image_tag.allow_tags = True
is depricated and you should use format_html(), format_html_join(), or mark_safe() instead
So your model.py should look like this:
...
def image_img(self):
if self.image:
return marksafe('<img src="%s" />' % self.image.url_125x125)
else:
return '(Sin imagen)'
image_img.short_description = 'Thumb'
and in your admin.py add:
list_display= ('image_img','product',)
readonly_fields = ('image_img',)
and for adding it in the 'Edit mode' of your admin panel in your admin.py add:
fields = ( 'image_img', )
Add a method in your model (models.py
):
def image_tag(self):
return u'<img src="%s" />' % <URL to the image>
image_tag.short_description = 'Image'
image_tag.allow_tags = True
and in your ModelAdmin (admin.py
) add:
readonly_fields = ('image_tag',)