我想从自定义项目中创建可重用的应用程序。
我想要移动到可重复使用的应用程序的部分服务整个页面并在顶部使用它:
{% extends "myproject/base.html" %}
现在我不确定要使用的基本模板。在新的可重用应用中,我不想使用myproject
,因为这是我无法分享的自定义代码。
我试图从伟大的django文档中获得帮助,但找不到解决方案 - 如果我失明了,请原谅我: - )
在可重复使用的应用程序中写什么?
{% extends ??????? %}
答案 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' %}
进行部署。