2010-10-18 34 views
1

在我的Django的网站,我决定只使用管理模板的用户界面,但我做了一些调整,如网站名称,颜色等,甚至我的自定义视图只是延长管理员/ base_site html的我这样做是用下面的代码创建模板/管理/ base_site.html:特质,同时延长Django管理模板

{% 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文件。这些也有风格变化,但没有自定义导航栏。但是,如果我在这些页面中放入面包屑块,它在这些页面上显示得很好。

回答

1

我工作围绕这通过复制原始base.html文件文件到我的项目的“/模板/管理/”文件夹,删除的面包块,增加了一个“mynav”块,把我的导航条那里。通过这种方式,我的导航栏显示在所有页面上,而当较低页面尝试放入面包屑时,它们没有阻挡,并且不显示。

我不喜欢做这种方式,但我想不出的另一种方式。 lazerscience建议的方式可以工作,但我必须在每个模板(change_form,change_list等)中进行包含。对于其他人,我应该提到,有一个“nav-global”块,但是我的导航栏使用lists/css/jscript来显示滑动菜单,如果我将它放在该块中,这些菜单不会显示出来, 。

0

其他管理模板,例如。 change_form.html覆盖breadcrumbs阻止自己,所以你还需要重写它在这些模板(=覆盖它们,并在那里定义块)。

+0

谢谢。我知道我错过了一些简单的事情。请在下面看到我的答案... – rsp 2010-10-19 00:41:39