Django sorl-thumbnail不显示图像

时间:2012-10-07 08:56:56

标签: django

我尝试使用Django sorl-thumbnail,但它不显示图像(并且不显示任何错误)。

Settings.py:

INSTALLED_APPS = (
    ....
    'sorl.thumbnail',
)

型号:

class Toy(models.Model):
    name = models.CharField(max_length=50, verbose_name=u'Name')
    image = ImageField(upload_to='site_media/images')

模板:

<div id="toy">
                {% for p in toys %}
                    <div class="toy">
                                # toy.image - this is model_name.image field
                            {% thumbnail toy.image "100x700" as im %}
                            <img style="margin:{{ im|margin:"100x700" }}" src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}">
                            {% endthumbnail %}

                            <p>
                            <span> {{ p.name }} </span>
                            <span> {{p.unit_price}} </span>
                            </p>
                    </div>
                {% endfor %}
            </div>

urls.py:

url(r'^site_media/(.*)$', 'django.views.static.serve', {'document_root' : os.path.join(os.path.dirname(__file__), 'site_media')}),

2 个答案:

答案 0 :(得分:13)

实际上,只有在删除原始图像时automatically delete缩略图才需要使用sorl中的ImageField。

默认情况下,

sorl.thumbnail不会显示任何错误,如果缩略图创建不成功,则会无声地失败。要查看错误,请添加

THUMBNAIL_DEBUG = True

到您的settings.py。这可以帮助您解决问题。

答案 1 :(得分:3)

Have you imported来自模型定义中sorl的ImageField?有必要让它自动运行。

此外you need to run in console ./manage.py syncdb因为在默认配置中,sorl会在数据库中保留缩略图的缓存名称。它必须在数据库中为它创建自己的表。

您是否还可以显示STATIC_URL,STATICFILES_DIRS等设置?