Миниатюра не отображается в интерфейсе администратора django

Привет, ребята, у меня проблема с приложением, которое я пытаюсь разработать в django. Я пытаюсь показать миниатюры в интерфейсе администратора, но вместо этого показывает URL-адрес. Вот что у меня есть в моих моделях.py

from sorl.thumbnail.main import DjangoThumbnail
from django.db import models
from django.contrib.auth.models import User


class Slide(models.Model):

    #Image Fields
    image = models.ImageField(
        upload_to="/srv/www/htdocs/photos/gallery/images/",
        height_field="image_height",
        width_field="image_width"
    )
    image_height = models.PositiveIntegerField(null=True, blank=True, editable=False)
    image_width = models.PositiveIntegerField(null=True, blank=True, editable=False)

    title = models.CharField(max_length=128)
    order = models.PositiveIntegerField(default=0)

    def slide_thumbnail(self, width=300, height=200):
        if self.image:
            thumb = DjangoThumbnail(self.image, (width, height))
            return '{img src="%s" /}' % thumb.absolute_url
        return '{img src="/media/img/admin/icon-no.gif" alt="False"}'
    slide_thumbnail.allow_tags = True

    def __unicode__(self):
        return u'Slide: %s - %sx%s' % (self.title, self.image_height, self.image_width)

И вот что у меня есть в моем admin.py

from django.contrib import admin
from models import *
from django.contrib import admin

class SlideAdmin(admin.ModelAdmin):
    list_display = ('title', 'order', 'slide_thumbnail',)
admin.site.register(Slide, SlideAdmin)

Я использую django 1.4 на suse 12.1 и запускаю apache в качестве своего веб-сервера и пытаюсь следовать этому руководству:

http://www.acedevs.com/blog/2011/07/11/django-admin-list-view-thumbnails/

Но вместо этого я получаю URL-адрес в столбце «миниатюра слайда» или изображение. URL-адрес, который я получаю, выглядит так

{img      src="/srv/www/htdocs/photos/gallery/images/702362_10200241914757028_37708631_n_jpg_300x200_q85.jpg" /}

Может ли кто-нибудь сказать мне, что я делаю неправильно, потому что он загружает изображения хорошо, но не отображает их


person roykasa    schedule 28.12.2012    source источник


Ответы (2)


Вы должны пометить тег img как безопасный следующим образом:

from django.utils.safestring import mark_safe

#... your code
return mark_safe('<img src="%s" />') % thumb.absolute_url

Надеюсь, это ведет в правильном направлении.

person Jingo    schedule 28.12.2012

определение image_tag (я):

    return u'<img src="%s" />' % <URL to the image>
    image_tag.short_description = 'Image'
    image_tag.allow_tags = True

и в вашем admin.py добавьте:

   readonly_fields = ('image_tag',) 
person Avinash Garg    schedule 30.01.2014