Python 在Django应用程序中包含子文件夹中的模板';s模板文件夹

Python 在Django应用程序中包含子文件夹中的模板';s模板文件夹,python,django,templates,Python,Django,Templates,在Django模板系统中,如何在templates文件夹的子文件夹中包含模板 我在TEMPLATE\u DIRS中包含了目录以及适当的“加载程序”,据我所知,我在模板中正确地调用了内容,但for仍然没有出现 谢谢 设置.py的内容 TEMPLATE_DEBUG = DEBUG TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directo

在Django模板系统中,如何在templates文件夹的子文件夹中包含模板

我在
TEMPLATE\u DIRS
中包含了目录以及适当的“加载程序”,据我所知,我在模板中正确地调用了内容,但for仍然没有出现

谢谢

设置.py的内容

TEMPLATE_DEBUG = DEBUG

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_PATH, "templates"),
    os.path.join(PROJECT_PATH, "templates/registration"),
    os.path.join(PROJECT_PATH, "templates/profile"),
)
{% extends "base.html" %}
{% load cms_tags %}

{% block reg_form %}
  {% include "registration/registration_form.html" %}
{% endblock %}
{% extends "base.html" %}
{% load i18n %}

{% block content %}
<form method="post" action=".">
  {% csrf_token %}
  {{ form.as_p }}

  <input type="submit" value="{% trans 'Submit' %}" />
</form>
{% endblock %}
基本模板

{% load cms_tags sekizai_tags %}
<html>
  <head>
      {% render_block "css" %}
  </head>
  <body>
      {% cms_toolbar %}
      {% placeholder base_content %}
      {% block base_content %}{% endblock %}
      {% render_block "js" %}
  </body>
</html>
子目录中的模板
注册

TEMPLATE_DEBUG = DEBUG

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(PROJECT_PATH, "templates"),
    os.path.join(PROJECT_PATH, "templates/registration"),
    os.path.join(PROJECT_PATH, "templates/profile"),
)
{% extends "base.html" %}
{% load cms_tags %}

{% block reg_form %}
  {% include "registration/registration_form.html" %}
{% endblock %}
{% extends "base.html" %}
{% load i18n %}

{% block content %}
<form method="post" action=".">
  {% csrf_token %}
  {{ form.as_p }}

  <input type="submit" value="{% trans 'Submit' %}" />
</form>
{% endblock %}
{%extends“base.html”%}
{%load i18n%}
{%block content%}
{%csrf_令牌%}
{{form.as_p}}
{%endblock%}

您的“base.html”模板是什么样的?包括一个将其扩展到另一个已经扩展的模板对我来说似乎很奇怪。是的,
registration\u form.html
模板是我从某人的git存储库中提取的。我尝试将其修改为扩展到
template_1.html
,但这似乎也不起作用。如果您只想让它呈现一点html,它可能不需要扩展任何内容。我希望能够调用位于
app/template/
文件夹子目录中的模板,而不考虑此示例。这里有一个答案()与此相关,但我看不出我在做什么不同。也许您可以解释一下仅呈现HTML与其他内容的区别?谢谢我的意思是,当您有一个生成要重用的内容的现有模板时,通常使用extend。这不是必需的。除非您的注册表是从另一个模板生成的,否则您可能不想在此处使用它。如果确实使用“扩展”,则将仅渲染父级中命名的块中的内容。我会先测试一个简单的文本或html的呈现,以确定它是否找不到模板或呈现错误。