Идиосинкразия при расширении шаблона администратора django

На моем сайте django я решил просто использовать шаблоны администратора для пользовательского интерфейса, но я сделал несколько настроек, таких как имя сайта, цвет и т. Д., Даже мои пользовательские представления просто расширяют admin / base_site.html Я сделал это, создав шаблоны / 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. У них также есть изменения стиля, но нет настраиваемой панели навигации. Но если я добавлю на эти страницы блок панировочных сухарей, он отлично отобразится на этих страницах.


person rsp    schedule 18.10.2010    source источник


Ответы (2)


Я работал над этим, скопировав исходный файл base.html в папку '/ templates / admin /' моего проекта, удалил блок хлебных крошек, добавил блок «mynav» и поместил туда мою навигационную панель. Таким образом, моя навигационная панель отображается на всех страницах, и когда нижние страницы пытаются вставить хлебную крошку, для них нет блока, и он не отображается.

Мне не нравится делать это таким образом, но я не могу придумать другого пути. Способ, предложенный lazerscience, будет работать, но мне придется включать в каждый шаблон (change_form, change_list и т. Д.). Для других, я должен упомянуть, есть блок «nav-global», но моя навигационная панель использует списки / css / jscript для отображения выдвижных меню, и эти меню не отображались, если я помещал его в этот блок, не знаю, почему .

person rsp    schedule 19.10.2010

Другие шаблоны администратора, например. change_form.html переопределяют сам breadcrumbs блок, поэтому вам необходимо переопределить его также в этих шаблонах (= переопределить их и определить там свой блок).

person Bernhard Vallant    schedule 18.10.2010