Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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
Html Django扩展模板_Html_Django_Django Templates_Django Views - Fatal编程技术网

Html Django扩展模板

Html Django扩展模板,html,django,django-templates,django-views,Html,Django,Django Templates,Django Views,我对Django还是很陌生 我有4个.html文件:header.html(每个页面的通用标题)、body.html(加载必要的css文件并根据用户角色生成导航按钮)、home.html和apply.html 以下是我想做的: 1) header.html(每个页面的通用标题)body.html的父级。 2) home.html和apply.html的父级body.html 下面是我在header.html中的代码: <!DOCTYPE html> <html> {% l

我对Django还是很陌生

我有4个.html文件:header.html(每个页面的通用标题)、body.html(加载必要的css文件并根据用户角色生成导航按钮)、home.html和apply.html

以下是我想做的: 1) header.html(每个页面的通用标题)body.html的父级。 2) home.html和apply.html的父级body.html

下面是我在header.html中的代码:

<!DOCTYPE html>
<html>
{% load staticfiles %}
<head>
    <link rel="shortcut icon" href="{% static "favicon.ico" %}"/>
    <link rel="stylesheet" href="{% static 'loginTemplate.css' %}" />
{% block body %}{% endblock %}
{% block content %}{% endblock %}

{%load staticfiles%}
{%block body%}{%endblock%}
{%block content%}{%endblock%}
以下是我在body.html中的代码:

{% extends "header.html" %}
{% block body %}
{% for role in roles %}
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'bodyTemplate.css' %}"/>
</head>
<body>
 <div><!--place my button here</div>
{% endfor %}
{% endblock %}
{%extends“header.html”%}
{%block body%}
{角色%中角色的%s}
{%load staticfiles%}

这不会直接回答您的问题,但这不是使用模板继承的最佳方式。您需要的是一个基本模板,其中包含all基本html布局,即:

# base.html
<!DOCTYPE html>
<html>
{% load staticfiles %}
<head>
    <link rel="shortcut icon" href="{% static "favicon.ico" %}"/>
    <link rel="stylesheet" href="{% static 'loginTemplate.css' %}" />
    {% block extra-head %}
    {# you can add any page-specific additional headers here #}
    {% endblock %}
</head>
<body>
{% block content %}
{# now you can have various "layout" subtemplates hooking into 'body' #}
{% endblock %}
</body>
</html>
#base.html
{%load staticfiles%}
{%block-extra-head%}
{#您可以在此处添加任何特定于页面的附加标题#}
{%endblock%}
{%block content%}
{#现在您可以将各种“布局”子模板连接到“body”}
{%endblock%}
还要注意的是,在您的代码中有以下内容:

{% block body %}
{% for role in roles %}
    {% load staticfiles %}
    <link rel="stylesheet" href="{% static 'bodyTemplate.css' %}"/>
  </head>

 <body>
   <div><!--place my button here</div>
{% endfor %}
{% endblock %}
{%block body%}
{角色%中角色的%s}
{%load staticfiles%}

你的“应用”视图设置了角色吗?没有。在你提到这件事后,我意识到了这一点。然后我做了一些代码检查,这就是为什么页面没有显示home.html.Hi之类的按钮的原因之一,谢谢你的回答。事实上,即使不是以非常直接的方式,它也确实起到了帮助作用。现在我知道我的错误在哪里了。是的,我同意这不是使用模板继承的最佳方式。这样做的原因是我使用header.html作为我的登录页面,所以我不需要为一个页面创建额外的模板。除了登录页面,像home.html这样的页面需要用户使用按钮。谢谢你指出我的业余代码。有了这些,我发现为什么apply.html没有打印出按钮,因为我的角色是空的。这会在其他页面开发过程中提醒我。保存一个额外的模板真的值得维护一个奇怪而脆弱的模板布局吗???嗯,不是我的问题,但是…哈哈,不是真的,我的意思是我不介意有额外的1个模板。但这是我得到代码时得到的。所以我只是把所有这些“怪异的模板”改成一个正常的模板,它应该是。。。
{% block body %}
{% for role in roles %}
    {% load staticfiles %}
    <link rel="stylesheet" href="{% static 'bodyTemplate.css' %}"/>
  </head>

 <body>
   <div><!--place my button here</div>
{% endfor %}
{% endblock %}