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