可重复使用的Django App中的基本模板

时间:2016-04-11 14:57:58

标签: django django-templates reusability

我想从自定义项目中创建可重用的应用程序。

我想要移动到可重复使用的应用程序的部分服务整个页面并在顶部使用它:

{% extends "myproject/base.html" %}

现在我不确定要使用的基本模板。在新的可重用应用中,我不想使用myproject,因为这是我无法分享的自定义代码。

我试图从伟大的django文档中获得帮助,但找不到解决方案 - 如果我失明了,请原谅我: - )

在可重复使用的应用程序中写什么?

{% extends ??????? %}

3 个答案:

答案 0 :(得分:3)

您需要将这些模板存储在app文件夹中。

假设您有myproject/myreusableapp这样的结构,您可以在myreusableapp文件夹中创建一个模板文件夹,并将base.html文件存储在那里。

然后,您将扩展该文件{% extends "myreusableapp/base.html" %}

答案 1 :(得分:3)

不幸的是,django在这里没有提供官方惯例。

有第三方文档项目为可重用模板定义了这些规则:

https://django-reusable-app-docs.readthedocs.org/en/latest/apps/templates.html

在官方django文档中获得约定的问题自2012年开始:

https://code.djangoproject.com/ticket/19106

这是我的机票,已经上述重复关闭:

https://code.djangoproject.com/ticket/26501

......我希望将来能找到一份协议。

答案 2 :(得分:0)

我是这样做的:

\project
|
+-\main
| |
| +-\template
| | |
| | +-\mainapp
| |   |
| |   +-base.html
| |   +-index.html
| |   +-...
| |
| +-\static
|   |
|   +-css
|   +-js
|   +-pics
|   +-...
|
+-\otherapp
  |
  +-...

其中main是标准操作的应用程序(寻呼机,登录,...),并且其中包含基本模板和静态。请注意,模板存储在main/templates/main/

在项目settings.py中,不要忘记在main/static注册STATICFILES_DIRS

然后您可以使用{% extends 'main/base.html' %}进行部署。