什么是django管理模板中{{block.super}}之后的“仪表板”字样

时间:2017-05-20 15:10:16

标签: django django-templates django-admin

{% block extrastyle %}{{ block.super }}
    <link rel="stylesheet" type="text/css" href="{% static "admin/css/dashboard.css" %}" />
{% endblock %}

{% block bodyclass %}{{ block.super }} dashboard{% endblock %}

块之间的“仪表板”是什么?它的作用是什么? 我尝试删除它,结果是'它导致管理模板中的表格搞砸了。

2 个答案:

答案 0 :(得分:0)

这看起来django的基本模板有一个名为bodyclass的模板块,而继承的模板正在添加css类dashboard

模板混乱的原因是因为你的项目在这个类上有CSS定义。

您可以在django templates and the inheritance structure here上阅读更多内容。

另一种验证方法是检查浏览器上生成的HTML源代码。你会注意到dashboard类放在body类(它看起来像是什么)上,以及它相关的CSS规则。

因此,当您删除dashboard时,CSS规则未应用于正文,因此结果

答案 1 :(得分:0)

不是覆盖子模板中{% block bodyclass %}的内容 - 这是默认行为 - 在子模板中的此块中添加{{ block.super }}允许您从父模板中保留此块的内容并添加其他内容。请参阅here示例。 在您的情况下,它只是将CSS类添加到您的body html标记中以进行自定义样式化。