Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Django;如何调试模板中的{%include';';%}标记_Django_Templates_Include - Fatal编程技术网

Django;如何调试模板中的{%include';';%}标记

Django;如何调试模板中的{%include';';%}标记,django,templates,include,Django,Templates,Include,有时我会得到一个为include标记返回的空字符串,这是不可能的,因为其中包含一些静态元素 这种情况有时发生在我的生产环境中。如何调试这样的问题 例如,我的页脚或页眉在某些情况下会消失(我将其包含在我的“base.html”中),这是我无法复制的 Thx 例如: base.html ... {%include“subdir/_header.html”%} ... {%block content%} 默认内容 {%endblock%} ... {%include“subdir/_footer.

有时我会得到一个为include标记返回的空字符串,这是不可能的,因为其中包含一些静态元素

这种情况有时发生在我的生产环境中。如何调试这样的问题

例如,我的页脚或页眉在某些情况下会消失(我将其包含在我的“base.html”中),这是我无法复制的

Thx

例如:

base.html

... 
{%include“subdir/_header.html”%}
...
{%block content%}
默认内容
{%endblock%}
...
{%include“subdir/_footer.html”%}
home.html
{%extends“base.html”%}
{%block content%}
家庭相关内容
{%endblock%}
因此,如果我加载home.html,我的页脚有时会消失。不知道为什么,没有错误

发现问题


丢失的静态文件导致了这种问题。很遗憾,我没有收到错误。

我不知道这个问题的确切原因,但是您可以尝试使用{%extends'base.html%}

include和extends之间的区别就在这里:


您的基本html应该被扩展,而不包括在内。。。include用于小代码块,如组件。。。博客帖子、新闻、联系人等等

基本html

{% load static %}

<!DOCTYPE html>
<html lang="en-US">

{% include 'path/head.html' %}

{% block content %}{% endblock %}

{% include 'path/footer.html' %}

</html>
{%load static%}
{%include'path/head.html%}
{%block content%}{%endblock%}
{%include'path/footer.html%}
其他页面

{% extends 'base.html' %}
{% load static %}

{% block content %}
<!-- Content from each page -->
{% endblock %}
{%extends'base.html%}
{%load static%}
{%block content%}
{%endblock%}
Obs.:Include-inside-of-includes无法正常工作,您可以从includes-inside-includes的第一页获取数据。。。为此,根据您的需要,我通常使用模板标签或上下文处理器。

使用django调试工具栏在dev环境中调试整个应用程序,您可以看到所需的整个请求和包含


“我无法复制”修复此类错误总是很困难的。它是发生在同一个模板上还是完全随机的?也许“blockcontent”标签有问题,或者你可以尝试“extend”而不是“include”。你的基本html应该被扩展而不是被包含。。。include用于小代码块,如组件。。。博客帖子、新闻、联系人等等……我给了你一个例子。我希望这能让事情变得更清楚。我知道{%extends%}和{%include%}之间的区别。我用一个小例子更新了我的帖子。不幸的是,错误没有发生在我的调试环境中。模板没有呈现,或者你没有从模型中获取数据?请看我上面的例子。如果我呈现例如“home.html”,那么我的页脚就不在那里。我看起来django忽略了我的“footer.html”(有时)。有时在同一个页面中?或者有一页永远不会呈现?总是同一页。这种问题是否记录在django日志文件中?
{% load static %}

<!DOCTYPE html>
<html lang="en-US">

{% include 'path/head.html' %}

{% block content %}{% endblock %}

{% include 'path/footer.html' %}

</html>
{% extends 'base.html' %}
{% load static %}

{% block content %}
<!-- Content from each page -->
{% endblock %}