django 管理模板中 block.super 之后的“仪表板”字是啥
Posted
技术标签:
【中文标题】django 管理模板中 block.super 之后的“仪表板”字是啥【英文标题】:What is 'dashboard' word after block.super in django admin templatedjango 管理模板中 block.super 之后的“仪表板”字是什么 【发布时间】:2017-10-20 14:42:36 【问题描述】:% block extrastyle % block.super
<link rel="stylesheet" type="text/css" href="% static "admin/css/dashboard.css" %" />
% endblock %
% block bodyclass % block.super dashboard% endblock %
块之间的“仪表板”字是什么?它有什么作用? 我尝试删除它,结果是'它导致管理模板中的表格混乱。
【问题讨论】:
【参考方案1】:而不是覆盖子模板中% block bodyclass %
的内容 - 这是默认行为 - 在子模板的此块内添加 block.super
允许您保留此块的内容与父模板并添加其他内容。请参阅here 示例。
在您的情况下,它只是将 CSS 类添加到您的 body
html 标记以进行自定义样式化。
【讨论】:
【参考方案2】:这看起来django的基础模板有一个名为bodyclass
的模板块,继承的模板是添加css类dashboard
。
你的模板搞砸的原因是你的项目在这个类上有 CSS 定义。
您可以在django templates and the inheritance structure here 上阅读更多内容。
验证这一点的另一种方法是在浏览器上检查生成的 HTML 源代码。您会注意到dashboard
类在(看起来是)body
类上的位置及其相关的 CSS 规则。
因此,当您删除 dashboard
- CSS 规则不会应用于正文,因此结果
【讨论】:
实际上我在第一行包含了完整的代码,其中有一个 css 链接标签,但 *** 删除了它'我认为它可能是它所指的dashboard.css 文件名'但是不确定....无论如何感谢您的回答 不,不是css文件名。这是您将在dashboard.css
文件中看到的类定义。如果您打开 css 文件,您会看到类似 .dashboard
的内容 - 它为您的 HTML 元素提供 CSS 规则。
你的意思是 .dasboard 将在没有定义元素的情况下工作而没有 dasboard 类?
没有。他们不会。你需要告诉 body 使用名为 Dashboard 的类。只有这样才会应用这些 CSS 样式。我想说的是 - 如果您将文件 dashboard.css
重命名为其他名称,并将链接引用更新为该名称,您的 css 仍然可以正常工作。它不依赖于文件名。不过,它确实取决于类名。
嗯,这是我遇到的另一个问题,我没有找到在整个管理模板中使用仪表板类的元素,这是 django admin 的默认设置......以上是关于django 管理模板中 block.super 之后的“仪表板”字是啥的主要内容,如果未能解决你的问题,请参考以下文章