0

すべてのアプリにアイコン画像があります:

/ app_name /static/モデル名 /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

設定.py

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

しかし、「SuspiciousOperation」エラーがあります: SuspiciousOperation at /admin/ Attempted access to '/polls/images/icon.png' denied.

私は何か間違ったことをしましたか?

4

2 に答える 2

0

パス「/polls/images/icon.png」は確かに疑わしいですが、コードのどこから来たのかわかりません。おそらく、ファイル システムの絶対パスとして解釈されます。このパスを作成する場所を確認し、settings.MEDIA_ROOT.

于 2014-05-15T10:07:29.910 に答える
0

簡単なサムネイルは、MEDIA ディレクトリに制限されている Django ストレージ バックエンドを使用します。この問題を解決する最善の方法は、カスタム ストレージ バックエンドを作成することです。

于 2015-03-15T22:54:22.620 に答える