Уникальность при расширении шаблона администратора django - PullRequest
1 голос
/ 19 октября 2010

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

Ответы [ 2 ]

1 голос
/ 19 октября 2010

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

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

0 голосов
/ 19 октября 2010

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

...