在我的django网站上,我决定只使用管理模板进行用户界面,但我做了一些调整,比如网站名称,颜色等等。即使我的自定义视图只是扩展admin / base_site.html我这样做了使用以下代码创建templates / admin / base_site.html:
{% extends "admin/base.html" %}
{% load i18n %}
{% block title %}{{ title }} | {% trans 'Company Name' %}{% endblock %}
{% block extrastyle %}
<style>
#header{ background-color: #a67d3d; border-bottom: solid 3px #f5deb3; }
#branding h1{ color: #fff; }
</style>
{% endblock %}
{% block branding %}
<h1 id="site-name">{% trans 'My company' %}</h1>
{% endblock %}
{% block breadcrumbs %}
{% include "breadcrumb.html" %}
{% endblock %}
整个管理网站都有我的新标题和颜色。但是,您可以看到我尝试用自己的breadcrumb.html(包含自定义导航栏)替换面包屑栏。这仅适用于扩展admin / base_site.html的自定义视图。普通的管理员视图不会替换面包屑(但它们确实有新的颜色,公司标题等)。我无法弄清楚为什么这一件不起作用?此外,我有一些自定义的change_form.html文件。这些也有样式更改,但没有自定义导航栏。但是,如果我在这些页面中放入了痕迹块,它会在这些页面上显示出来。
答案 0 :(得分:1)
我通过将原始base.html文件复制到项目的'/ templates / admin /'文件夹,删除了痕迹导致块,添加了“mynav”块,将导航栏放在那里来解决这个问题。这样我的导航栏就显示在所有页面上,当较低页面试图放入面包屑时,它们没有阻挡它并且它没有出现。
我不喜欢这样做,但我想不出另一种方式。 lazerscience建议的方式可行,但我必须在每个模板中进行包含(change_form,change_list等)。对于其他人,我应该提一下,有一个“nav-global”块,但是我的导航栏使用lists / css / jscript来显示滑出菜单,如果我把它放在那个块中,这些菜单没有出现,不确定为什么
答案 1 :(得分:0)
其他管理模板,例如。 change_form.html
会自行覆盖breadcrumbs
块,因此您还需要在这些模板中覆盖它(=覆盖它们并在其中定义块)。