2010-02-14 135 views
4

我意識到templatetags主要用於INSTALLED_APPS應用程序,比如articles/templatetags /,但在我的情況下,我需要標籤來處理一些通用的東西,例如沒有應用程序的導航。Django:構建全球模板標籤的最佳做法是什麼?

我目前在我的項目目錄中保留templatetags。並且爲了讓它被拿起來,我把我的項目加到了INSTALLED_APPS--這很有效,但我不確定這是否是正確的做法 - 是否有缺點?

回答

6

我會做同樣的方式Django提供了額外的模板標籤,即創建一個自己的包/應用(django.contrib.humanizedjango.contrib.markupdjango.contrib.webdesign

這些都只是三「正常」的包,有一個templatetags包內。 tempaltetags中的模塊名稱與程序包/應用程序名稱相同(例如humanize.py)。

然後把它放在Python可以找到它的地方。

您也可以創建某種「元」包templatetags並將所有內容放在那裏。

templatetags 
- navigation 
    - __init__.py 
    - templatetags 
     - _init__.py 
     - navigation.py 
- other 
    - ... 

當然,你必須對那些添加到您INSTALLED_APPS(例如templatetags.navigation),並在您的模板(如{% load navigation %})加載它們。

相關問題