[英]Using easy-thumbnails (or other 3rd party library) with jinja2 in Django
在Django中將第三方過濾器(如easy-thumbnails)與Jinja2一起使用的過程是什么? 我是否需要以某種方式注冊需要使用的過濾器? 具體來說,我想使用以前使用過的thumbnail_url
過濾器,例如:
<img src="{{ the_thing.image|thumbnail_url:'homepage_large' }}">
我試圖將其轉換為Jijnja2語法,如下所示:
{{ the_thing.image|thumbnail_url('homepage_large') }}
但出現以下錯誤:
django.template.base.TemplateSyntaxError: ("no filter named 'thumbnail_url'",)
您需要將過濾器添加到您的Jinja2環境中:
def environment(**options):
env = Environment(**options)
env.globals.update(**{
'static': staticfiles_storage.url,
'url': reverse,
})
# add easy-thumbnails function as a Jinja2 filter
from easy_thumbnails.templatetags.thumbnail import thumbnail_url
env.filters.update(**{
'thumbnail_url': thumbnail_url,
})
return env
您應該知道,易用縮略圖中的模板標記是為Django模板構建的。 但是,在這種非常特殊的情況下, thumbnail_url
函數也恰好與Jinja2模板一起使用。
更好的實現方式是編寫您自己的函數,以將實現的功能包裝在簡單的縮略圖中,並將這些函數用作Jinja2過濾器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.