我可以将我的自定义模板标签文件夹移到我的应用程序之外吗?
Posted
技术标签:
【中文标题】我可以将我的自定义模板标签文件夹移到我的应用程序之外吗?【英文标题】:Can I move my custom template tags folder outside my app? 【发布时间】:2012-08-26 16:19:35 【问题描述】:Django 新手。在 Django docs 中,我知道它说“自定义模板标签和过滤器必须存在于 Django 应用程序中。”。我将有 4 或 5 个应用程序,每个应用程序都有自定义模板标签(其中一些将与其他应用程序中的标签相同)。即使它这么说,是否可以在我的项目的根目录下为我的所有模板标签创建一个主文件夹?似乎每个应用程序都有单独的文件夹违反了 D.R.Y....
【问题讨论】:
【参考方案1】:好吧,没有理由有重复的标签;任何应用程序中的模板标签库都可以从任何模板加载。您应该只拥有任何标签的一份副本。
也就是说,通常做的是创建一个模板标签APP来容纳所有模板标签。
只需构建一个名为 tags、utils 等的空白应用程序,然后将所有模板标签放入该应用程序中。
root/utils/templatetags
它甚至不需要 model.py/urls.py 就可以在 installed_apps 中运行。
【讨论】:
【参考方案2】:您可以制作一个应用程序,其唯一目的是处理一些通用的事情,例如模板标签或实用程序。有时我这样做并称之为“应用程序”。
但是,即使您保持原样,也没有理由复制模板标签,因为它们在所有模板中都可用。除非您打算将应用程序拆分并在不同的项目中使用它们,否则只需将模板标签放在适当的应用程序中,然后从模板中加载即可。
【讨论】:
以上是关于我可以将我的自定义模板标签文件夹移到我的应用程序之外吗?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Spring Boot Security 中登录到我的自定义登录页面
如何使用管理员 Liferay 将我的自定义 portlet 拖/添加到 liferay 页面?