使用“templatetags”的自定义目录

时间:2014-07-07 02:00:30

标签: django django-1.7

有人知道它是否可能使用自定义目录来进行" templatetags" eje:" my-project / templatetags"

Normal
My-Project-Name
  My-App
    __init__.py
      templatetags
        __init__.py

需要一些这样的

My-Project-Name
  templatetags
    __init__.py

2 个答案:

答案 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 %}来加载这些模板标签。