【问题标题】:Get image thumbnail from easy-thumbnails by image location按图像位置从easy-thumbnails中获取图像缩略图
【发布时间】:2013-12-22 03:54:17
【问题描述】:

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

/app_name/static/model_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},
    },
}

但我有一个“可疑操作”错误: /admin/ 的可疑操作 尝试访问“/polls/images/icon.png”被拒绝。

我是不是做错了什么?

【问题讨论】:

  • 你的图片有相应的权限吗?
  • 是的,确实如此。如果我将该 url 直接放在 src 属性中而不使用缩略图 - 我会以原始大小加载图像

标签: django easy-thumbnails


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 2013-01-19
      • 1970-01-01
      • 2016-02-14
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 2012-03-05
      相关资源
      最近更新 更多