我想把我所有的link
标签 <head>
.
但是,我不知道如何渲染所有 link
head
中的标签当我通过内置的 include
包含共享模板时,我的 DOM标签。所以我的link
标签会在我碰巧包含共享模板的任何地方呈现。我在下面添加了代码以更好地说明我的问题。
布局:
<html>
<head>
{% block references %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
使用模板扩展布局:
{% extends "layout.html" %}
{% load staticfiles %}
{% block references %}
<link rel="stylesheet" href="{% static "myStylesheet.css" %}" type="text/css">
{% endblock %}
...
{% include "mySharedTemplate.html" %}
...
共享模板。请注意,此模板在我的一些但不是全部模板之间共享:
{% load staticfiles %}
<link rel="stylesheet" href="{% static "mySharedTemplateStylesheet.css" %}" type="text/css">
...
有没有办法把我所有的link
head
中的标签使用共享模板时我的 DOM?有没有完全不同或更好的方法来做到这一点?我的第一个 django 元素已经一周了,所以即使是基本功能的建议也可能对我有帮助!
最佳答案
我认为您正在寻找{{block.super}}
例如Layout.html:
<html>
<head>
{% load staticfiles %}
{% block references %}
<link rel="stylesheet" href="{% static "mySharedTemplateStylesheet.css" %}" type="text/css">
{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
在 Template.html 中:
{% extends "layout.html" %}
{% load staticfiles %}
{% block references %}
{{block.super}}
<link rel="stylesheet" href="{% static "myStylesheet.css" %}" type="text/css">
{% endblock %}
如果您不想在所有页面中使用mySharedTemplateStylesheet.css
,您只需不要使用{{block.super}}
,例如Template2.html:
{% extends "layout.html" %}
{% load staticfiles %}
{% block references %}
<link rel="stylesheet" href="{% static "myStylesheet.css" %}" type="text/css">
{% endblock %}
关于python - 静态文件和 django 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17227249/