Django的新手。在Django docs中,我知道它说“自定义模板标签和过滤器必须存在于Django应用程序中。”。我将有4或5个应用程序,每个应用程序都有自定义模板标签(其中一些将与其他应用程序中的标签相同)。即使它说,我可以在项目的根目录下为我的所有模板标签创建一个主文件夹吗?似乎每个应用程序都有单独的文件夹,违反了D.R.Y ....
答案 0 :(得分:5)
嗯,没有理由有重复的标签;任何应用程序中的模板标记库都可以从任何模板加载。您应该只有一个任何标签的副本。
也就是说,通常做的是创建一个模板标签APP来容纳所有模板标签。
只需构建一个名为tags,utils,whatever的空白应用程序,并将所有模板标签放在该应用程序中。
root/utils/templatetags
甚至不需要model.py/urls.py来在installed_apps中运行。
答案 1 :(得分:0)
你可以创建一个仅用于处理模板标签或工具等常规内容的应用程序。有时候我这样做,只需要打电话给#34; app"。
但即使你保持原样,也没有理由复制模板标签,因为无论如何它们都可以在所有模板中使用。除非您打算破解应用程序并在不同的项目中使用它们,否则只需将模板标记放在相应的应用程序中,然后从模板中加载它。