有人知道它是否可能使用自定义目录来进行" templatetags" eje:" my-project / templatetags"
Normal
My-Project-Name
My-App
__init__.py
templatetags
__init__.py
需要一些这样的
My-Project-Name
templatetags
__init__.py
答案 0 :(得分:2)
这是不可能的。原因是,templatetags
必须驻留在django应用程序中。
来自documentation of templatetags
:
自定义模板标记和过滤器必须位于Django应用程序中。如果 它们与现有应用程序相关,将它们捆绑在那里是有意义的; 否则,你应该创建一个新的应用程序来保存它们。
应用程序应包含templatetags目录,与...相同 models.py,views.py等。如果这不存在,请创建它 - 不要忘记
__init__.py
文件以确保处理目录 作为Python包。添加此模块后,您将需要 重新启动服务器,然后才能使用标签或过滤器 模板。
答案 1 :(得分:1)
这是可能的。也许不是首选,但可能。只需将templatetags.py
或templatetags目录的位置添加到djangos settings.py
中即可。
就我而言,我将模板标签放在根目录下的libs/
目录中。
TEMPLATES = [{
...
'OPTIONS': {
...
'builtins': [
'libs.templatetags'
]
}
}]
PS!之后,您可以在所有模板上使用该模板,而无需使用{% load %}
来加载这些模板标签。