我可以将自定义模板标签文件夹移到我的应用之外吗?

时间:2012-08-31 20:46:20

标签: django django-template-filters

Django的新手。在Django docs中,我知道它说“自定义模板标签和过滤器必须存在于Django应用程序中。”。我将有4或5个应用程序,每个应用程序都有自定义模板标签(其中一些将与其他应用程序中的标签相同)。即使它说,我可以在项目的根目录下为我的所有模板标签创建一个主文件夹吗?似乎每个应用程序都有单独的文件夹,违反了D.R.Y ....

2 个答案:

答案 0 :(得分:5)

嗯,没有理由有重复的标签;任何应用程序中的模板标记库都可以从任何模板加载。您应该只有一个任何标签的副本。

也就是说,通常做的是创建一个模板标签APP来容纳所有模板标签。

只需构建一个名为tags,utils,whatever的空白应用程序,并将所有模板标签放在该应用程序中。

root/utils/templatetags

甚至不需要model.py/urls.py来在installed_apps中运行。

答案 1 :(得分:0)

你可以创建一个仅用于处理模板标签或工具等常规内容的应用程序。有时候我这样做,只需要打电话给#34; app"。

但即使你保持原样,也没有理由复制模板标签,因为无论如何它们都可以在所有模板中使用。除非您打算破解应用程序并在不同的项目中使用它们,否则只需将模板标记放在相应的应用程序中,然后从模板中加载它。