Django 的理念是 webapps 是可重用的。但是如何实现不同 webapp 之间的模板和谐呢?
这是一个假设的示例:我想重新使用 webapp 1(例如django_openid)来启用 OpenID 登录;我想重用 webapp 2(例如,django 邀请应用程序)来邀请客户;我想编写自己的应用程序(MTV)进行统计
但他们的模板通常看起来不属于单个项目。如何以最少的干扰工作重用现有工作(上述假设示例中的 Web 应用程序 1 和 Web 应用程序 2)?
Django 的理念是 webapps 是可重用的。但是如何实现不同 webapp 之间的模板和谐呢?
这是一个假设的示例:我想重新使用 webapp 1(例如django_openid)来启用 OpenID 登录;我想重用 webapp 2(例如,django 邀请应用程序)来邀请客户;我想编写自己的应用程序(MTV)进行统计
但他们的模板通常看起来不属于单个项目。如何以最少的干扰工作重用现有工作(上述假设示例中的 Web 应用程序 1 和 Web 应用程序 2)?
我假设“侵入式”是指在可重用应用程序中编辑文件。
在完全不打扰的情况下,您应该能够覆盖可重用应用程序中的任何模板,方法是将它们放在项目级模板目录中,或者通过在您自己的应用程序中提供具有匹配名称的模板。
Django 模板加载是完全可配置的,但默认情况下,它会首先在设置中命名为 的目录中查找TEMPLATE_DIRS
,然后templates
在每个已安装应用程序的目录中,按照它们出现的顺序查找。通过将您的应用程序放在 INSTALLED_APPS 中的 openid 或邀请之前,您的自定义模板将被加载而不是提供的模板。
在某些情况下,我为一个项目创建了一个“应用程序”,它实际上只是一个空的 models.py 和一组模板。然后我有一个地方来存储站点基础模板,以及来自其他应用程序的所有覆盖模板。
与django invitation app
大多数可重复使用的应用程序一样,它具有包含使用部分的文档。这将解释如何在项目中重用该应用程序。
django_openid
根据自述文件似乎“尚未准备好”,因此您需要深入研究代码才能使用它。
通常,您需要转到您尝试重用的应用程序的文档并查找使用/实现部分。