Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django正在加载从特定目录继承的模板_Python_Django_Templates - Fatal编程技术网

Python Django正在加载从特定目录继承的模板

Python Django正在加载从特定目录继承的模板,python,django,templates,Python,Django,Templates,在我们的项目中,我们有一系列不同的模板供客户选择(用于他们的Web存储)。文件布局如下所示: templates cart.html closed.html head.html standard bishop default indiana marley mocca nihilists raconteurs tripwire 标准的每个

在我们的项目中,我们有一系列不同的模板供客户选择(用于他们的Web存储)。文件布局如下所示:

templates
    cart.html
    closed.html
    head.html
    standard
        bishop
        default
        indiana
        marley
        mocca
        nihilists
        raconteurs
        tripwire
标准的每个子文件夹都包含一些模板文件,如base.html、browse.html和item.html。浏览并从基中继承项

我要做的是在一个特定的模板文件夹(比如templates/standard/bishop)中呈现浏览模板,该文件夹与我的应用程序中的任何其他全局模板路径设置隔离。有办法吗


更新:我会尽量说得更清楚。如果我只是从bishop子文件夹中呈现browse.html,它会尝试扩展base.html,但找不到它。我可以更改设置模板路径以包含bishop文件夹,但我正在寻找一种方法,使其能够独立工作。

在您的templates/standard/bishop/browse.html模板中,您正在执行以下操作:

{% extends "base.html" %}
这指的是模板/base.html,而不是模板/standard/bishop/base.html。默认情况下,Django将检查已安装的应用程序以及在settings.py中的template_DIRS下指定的模板目录

此行为由settings.py中的模板加载程序指定:

通过创建自己的模板加载器,您可能可以不受影响,否则只需指定base.html的实际路径:

{% extends "standard/bishop/base.html" %}

在templates/standard/bishop/browse.html模板中,您将执行以下操作:

{% extends "base.html" %}
这指的是模板/base.html,而不是模板/standard/bishop/base.html。默认情况下,Django将检查已安装的应用程序以及在settings.py中的template_DIRS下指定的模板目录

此行为由settings.py中的模板加载程序指定:

通过创建自己的模板加载器,您可能可以不受影响,否则只需指定base.html的实际路径:

{% extends "standard/bishop/base.html" %}

不清楚“与我的应用程序中的任何其他全局模板路径设置隔离”是什么意思。从任何路径渲染模板都很容易。具体来说,您需要做什么?子文件夹中的模板应该能够通过{%extends“base.html”%}扩展父文件夹中的基础模板。你确定你的base.html存在吗?不清楚你所说的“与我的应用程序中的任何其他全局模板路径设置隔离”是什么意思。从任何路径渲染模板都很容易。具体来说,您需要做什么?子文件夹中的模板应该能够通过{%extends“base.html”%}扩展父文件夹中的基础模板。你确定你的base.html存在吗?