Django 1.11-子模板未从父模板继承
我已经阅读了类似的堆栈溢出问题,并检查了我没有犯同样的错误。我认为这不是URL或视图的问题,因为Django调试工具栏显示它正在拾取父模板,但子模板没有扩展它 我有以下项目结构:Django 1.11-子模板未从父模板继承,django,django-templates,chart.js,Django,Django Templates,Chart.js,我已经阅读了类似的堆栈溢出问题,并检查了我没有犯同样的错误。我认为这不是URL或视图的问题,因为Django调试工具栏显示它正在拾取父模板,但子模板没有扩展它 我有以下项目结构: project templates base.html index.html apps charts templates chart_base.html charts
project
templates
base.html
index.html
apps
charts
templates
chart_base.html
charts.html
project/templates/base.html
结果页面的HTML源代码显示chart_base.HTML已正确呈现,但没有charts.HTML位
127.0.0.1:8000/结果/
你知道我哪里会出错吗?在你的
base.html
中,你有一个打字错误。您正在使用
标记关闭
<footer class="footer">
<div class="container">
{% block footer %}
{% endblock %}
</container>
</footer>
{%block footer%}
{%endblock%}
应该是:
<footer class="footer">
<div class="container">
{% block footer %}
{% endblock %}
</div>
</footer>
{%block footer%}
{%endblock%}
还可以将
charts.html
包装在一个块中,以便它可以包含在任何地方。在base.html
中,您有一个输入错误。您正在使用
标记关闭
<footer class="footer">
<div class="container">
{% block footer %}
{% endblock %}
</container>
</footer>
{%block footer%}
{%endblock%}
应该是:
<footer class="footer">
<div class="container">
{% block footer %}
{% endblock %}
</div>
</footer>
{%block footer%}
{%endblock%}
还可以将
charts.html
包装在一个块中,以便它可以包含在任何位置。您的视图应该使用charts.html
,而不是chart\u base.html
(它扩展了)
您可以使用TemplateView
而不是View
:
class HomeView(TemplateView):
template_name = 'chart.html'
在charts.html
中,注释和
标记不在任何块中。这意味着它们不会包含在渲染模板中,因此可以删除它们
{% extends 'chart_base.html' %}
<!-- charts.html jquery -->
<script>
{% block jquery %}
{%extends'chart\u base.html%}
{%block jquery%}
您的视图应该使用charts.html
,而不是chart\u base.html
(它扩展了)
您可以使用TemplateView
而不是View
:
class HomeView(TemplateView):
template_name = 'chart.html'
在charts.html
中,注释和
标记不在任何块中。这意味着它们不会包含在渲染模板中,因此可以删除它们
{% extends 'chart_base.html' %}
<!-- charts.html jquery -->
<script>
{% block jquery %}
{%extends'chart\u base.html%}
{%block jquery%}
不幸的是,这还没有解决问题。。。我已将代码更改为{%extends'chart\u base.html%}/n{%block chart%}/nchart/n{%endblock%}
,但仍然没有任何内容。还有其他想法吗?我刚刚注意到-您在视图中使用了错误的模板问题是我使用的是chart\u base.html
,而不是chat.html
。它可以在不将脚本包装到块中的情况下工作——我正在处理这个示例——我感到困惑,因为注释和脚本标记在块之外,所以永远不会使用。我现在看到代码的其余部分在{%block jquery%}
中,因此现在将使用它,因为您在视图中使用了正确的模板。不幸的是,这并没有解决它。。。我已将代码更改为{%extends'chart\u base.html%}/n{%block chart%}/nchart/n{%endblock%}
,但仍然没有任何内容。还有其他想法吗?我刚刚注意到-您在视图中使用了错误的模板问题是我使用的是chart\u base.html
,而不是chat.html
。它可以在不将脚本包装到块中的情况下工作——我正在处理这个示例——我感到困惑,因为注释和脚本标记在块之外,所以永远不会使用。现在我看到代码的其余部分在{%block jquery%}
中,因此现在您在视图中使用了正确的模板,就可以使用它了。
class HomeView(TemplateView):
template_name = 'chart.html'
{% extends 'chart_base.html' %}
<!-- charts.html jquery -->
<script>
{% block jquery %}