我意识到templatetags主要用于特定于INSTALLED_APPS的应用程序,例如articles / templatetags /,但在我的情况下,我需要标签用于通用的东西,例如没有应用程序的导航。
我目前正在我的项目目录中保留templatetags
。为了让它被拿起来,我将我的项目添加到INSTALLED_APPS
- 这有效,但我不确定这是否是正确的做法 - 是否有任何缺点?
答案 0 :(得分:6)
我会这样做,就像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 %}
)。