【问题标题】:Thumbnail not showing in the django admin interface缩略图未显示在 django 管理界面中
【发布时间】:2012-12-13 16:41:14
【问题描述】:

大家好,我在尝试用 django 开发应用时遇到问题。我试图在管理界面中显示缩略图,但它显示的是 url。这是我的models.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)

我在 suse 12.1 上使用 django 1.4 并运行 apache 作为我的 Web 服务器,并尝试按照此处的教程进行操作:

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

但是,相反,我在“幻灯片缩略图”列中获得了一个 url,或者是一个图像。 我得到的网址是这样的

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

有人能告诉我做错了什么吗,因为它可以很好地上传图片但不显示它们

【问题讨论】:

    标签: django apache python-2.7 django-admin opensuse


    【解决方案1】:

    您应该像这样将 img 标签标记为安全:

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

    希望这会导致正确的方向。

    【讨论】:

      【解决方案2】:

      def image_tag(self):

          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',) 
      

      【讨论】:

        猜你喜欢
        • 2011-01-27
        • 2013-07-09
        • 2017-10-16
        • 2010-11-25
        • 1970-01-01
        • 1970-01-01
        • 2010-12-14
        • 1970-01-01
        • 2017-08-12
        相关资源
        最近更新 更多