通过图像位置从简易缩略图中获取图像缩略图

时间:2013-12-05 09:26:51

标签: django easy-thumbnails

我在所有应用中都有一个图标图片:

/ APP_NAME /静态/的模型名称 /images/icon.png

添加到管理界面中的模型列表。我想使用简单缩略图和自定义模板标记裁剪它:

template.html:

{% load project_tags %}
<th scope="row">{% load_icon model %}<a href="{{ model.admin_url }}">{{ model.name }}</a></th>

project_tags.py

from easy_thumbnails.files import get_thumbnailer
class LoadIcon(template.Node):

    def __init__(self, model_obj):
        self.model_obj = Variable(model_obj)

    def render(self, context):
        return '<img src="%s" />' % get_thumbnailer('/static/'+model_name+'/images/icon.png')['model_icon'].url

settings.py

THUMBNAIL_ALIASES = {
    '': {
        'model_icon': {'size': (20, 20), 'crop': True},
    },
}

但我有一个“SuspiciousOperation”错误: 在/ admin /的SuspiciousOperation 试图访问'/polls/images/icon.png'被拒绝。

我做错了吗?

2 个答案:

答案 0 :(得分:0)

路径'/polls/images/icon.png'确实存在疑问,但我无法在您的代码中看到它来自哪里。它可能被解释为文件系统上的绝对路径。检查构建此路径的位置,并从settings.MEDIA_ROOT开始。

答案 1 :(得分:0)

Easy thumbnail使用Django存储后端,该后端仅限于MEDIA目录。解决问题的最佳方法是编写自定义存储后端。