Skip to main content
 首页 » 编程设计

python之静态文件和 Django 模板

2024年11月01日26lori

我想把我所有的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 %}