[英]Django : How to use 3rd party app templatetags with Jinja 2?
我正在為我的django網站嘗試Jinja2
。
現在,由於Jinja2
不是官方django templating engine
並且拒絕識別/加載我在jinja2
之前使用的模板標簽。
現在,即使創建模板標簽時必須進行更改,那么如何反映第三方應用程序呢?
在這種情況下,似乎不可能使用Jinja2,因為系統必須按照jinja2工作。
[我也使用coffin
作為Jinja-Django的適配器]
任何幫助表示贊賞!
你可以用棺材做到這一點。 Coffin提供了一種注冊django風格標簽的方法,以便在jinja2模板中使用:
from coffin import template
from ThrdPartyDjangoLib import djangoTagIWantToUse
register = template.Library()
register.tag('djangoTagIWantToUse', djangoTagIWantToUse)
根據棺材文檔,您將不得不將任何自定義django模板標記重寫為自定義Jinja2擴展。
您還可以使用jinja2宏功能來模擬Django的模板標簽。 最顯着的區別是,對於Jinja2宏,有必要通過模板上下文提供所有上下文數據,而在Django標簽中,您可以使用其他方式訪問數據(例如從數據庫加載或調用其他Python庫)。
我一直在使用Jinja2模板,從來沒有必要創建自定義模板標簽。
可以在網站上的一個應用程序中使用django模板,在另一個應用程序中使用jinja2,這不是問題,但是不容易從django模板導入或擴展jinja2模板,反之亦然。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.