我意識到templatetags主要用於INSTALLED_APPS應用程序,比如articles/templatetags /,但在我的情況下,我需要標籤來處理一些通用的東西,例如沒有應用程序的導航。Django:構建全球模板標籤的最佳做法是什麼?
我目前在我的項目目錄中保留templatetags
。並且爲了讓它被拿起來,我把我的項目加到了INSTALLED_APPS
--這很有效,但我不確定這是否是正確的做法 - 是否有缺點?
我意識到templatetags主要用於INSTALLED_APPS應用程序,比如articles/templatetags /,但在我的情況下,我需要標籤來處理一些通用的東西,例如沒有應用程序的導航。Django:構建全球模板標籤的最佳做法是什麼?
我目前在我的項目目錄中保留templatetags
。並且爲了讓它被拿起來,我把我的項目加到了INSTALLED_APPS
--這很有效,但我不確定這是否是正確的做法 - 是否有缺點?
我會做同樣的方式Django提供了額外的模板標籤,即創建一個自己的包/應用(django.contrib.humanize
,django.contrib.markup
,django.contrib.webdesign
)
這些都只是三「正常」的包,有一個templatetags
包內。 tempaltetags
中的模塊名稱與程序包/應用程序名稱相同(例如humanize.py
)。
然後把它放在Python可以找到它的地方。
您也可以創建某種「元」包templatetags
並將所有內容放在那裏。
templatetags
- navigation
- __init__.py
- templatetags
- _init__.py
- navigation.py
- other
- ...
當然,你必須對那些添加到您INSTALLED_APPS
(例如templatetags.navigation
),並在您的模板(如{% load navigation %}
)加載它們。