Python 在Django应用程序中包含子文件夹中的模板';s模板文件夹
在Django模板系统中,如何在templates文件夹的子文件夹中包含模板 我在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
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的呈现,以确定它是否找不到模板或呈现错误。