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
。然后覆盖您想要覆盖的任何文件。
例如,如果您想覆盖应用程序test
的index.html
,则:
BASE_DIR (project root)
- test
- templates
- index.html
【讨论】:
以上是关于Django 应用 + 第 3 方的模板目录的主要内容,如果未能解决你的问题,请参考以下文章