Django 应用 + 第 3 方的模板目录

Posted

技术标签:

【中文标题】Django 应用 + 第 3 方的模板目录【英文标题】:Django app + 3rd party' s template directory 【发布时间】:2019-05-16 21:05:56 【问题描述】:

我有一个 django 应用程序,我正在编写一个 3rd 方应用程序,该应用程序被放置在 virtualenv 的 lib/python2.7/site-packages/appname 目录中。它也有模板文件,但是django应用程序本身默认是找不到的。

以 django 应用程序将找到模板目录(以最简单的方式)的方式编写 3rd 方应用程序的最佳方法是什么?

第 3 方应用具有以下结构:

appdir/
    views.py
    forms.py
    templates/

。 django 应用有以下相关设置:

TEMPLATES['APP_DIRS'] = True
INSTALLED_APPS has the 3rd party app

.

当然,将 3rd 方应用的位置添加到 TEMPLATES['DIRS'] 是一种简单的解决方法,但我对最好的技术更感兴趣。

Django:1.11.16 Python:2.7.9

.

【问题讨论】:

【参考方案1】:

您应该在模板文件夹中创建一个与您的应用程序同名的文件夹,并将所有模板放入其中。在上述情况下,文件夹应命名为appdir。如果您将APP_DIRS 设置为True,这就是要走的路。

【讨论】:

【参考方案2】:

例如,如果您的应用名称是test,那么在您的根项目中创建一个文件夹test,然后在其中创建文件夹templates。然后覆盖您想要覆盖的任何文件。

例如,如果您想覆盖应用程序testindex.html,则:

BASE_DIR (project root)
  - test
     - templates
        - index.html

【讨论】:

以上是关于Django 应用 + 第 3 方的模板目录的主要内容,如果未能解决你的问题,请参考以下文章

模板没有在 django 中查看应用级模板目录?

Django 教程:模板和视图

Django 找不到模板目录?

如何让 django 知道模板目录?

Django 自定义项目模板

Django 模板