我在所有应用中都有一个图标图片:
/ 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'被拒绝。
我做错了吗?
答案 0 :(得分:0)
路径'/polls/images/icon.png'确实存在疑问,但我无法在您的代码中看到它来自哪里。它可能被解释为文件系统上的绝对路径。检查构建此路径的位置,并从settings.MEDIA_ROOT
开始。
答案 1 :(得分:0)
Easy thumbnail使用Django存储后端,该后端仅限于MEDIA目录。解决问题的最佳方法是编写自定义存储后端。