0

我在所有应用程序中都有一个图标图像:

/ app_name /static/ model_name /images/icon.png

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

模板.html:

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

项目标签.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

设置.py

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

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

我做错什么了吗 ?

4

2 回答 2

0

路径 '/polls/images/icon.png' 确实很可疑,但我在您的代码中看不到它的来源。它可能被解释为文件系统上的绝对路径。检查您构建此路径的位置并让它以settings.MEDIA_ROOT.

于 2014-05-15T10:07:29.910 回答
0

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

于 2015-03-15T22:54:22.620 回答