Переопределите Navbar на странице администрирования Django base, чтобы он совпадал с base. html - PullRequest
0 голосов
/ 18 февраля 2020

На моих django страницах администрирования я хотел бы переопределить панель навигации (верхнюю ленту) так же, как в моем шаблоне "base. html". По разным причинам:

  • Пользователи могут перемещаться по сайту, даже если они находятся в представлениях администратора.
  • Чтобы сохранить одинаковый стиль на всех страницах, даже на страницах администратора.

Я использую django 2.2.6.

Я действительно не знаю, как начать и какой подход был бы лучшим.

Любые советы о том, как вы бы сделать это?


EDIT1:

Я думал о создании файла base_site. html в папке "templates / admin /" и просто скопируйте вставку моя база. html.

Проблема, с которой я сталкиваюсь - это стиль. Пожалуйста, смотрите ниже для получения более подробной информации:

# Content of admin/base_site.html:
{% extends "admin/base_site.html" %}
{% load static %}

{% block extrastyle %}
<!--<link href="{% static 'css/bootstrap.css' %}" rel="stylesheet"/>--> # Uncommenting this line will "fix" style on my navbar but break style of all admin pages ...

<script src="{% static 'js/jquery-1.12.3.min.js' %}"></script>
<script src="{% static 'js/jquery-ui.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
{% endblock %}

{% block usertools %}
<div class="dropdown">
    <a id="dLabel" role="button" data-toggle="dropdown" class="btn btn-primary" data-target="#" href="/">
    Dropdown <span class="caret"></span>
    </a>
    <ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu">
        <li><a href="#">Some action</a></li>
        <li><a href="#">Some other action</a></li>
        <li class="divider"></li>
        <li class="dropdown-submenu">
            <a tabindex="-1" href="#">Group</a>
            <ul class="dropdown-menu">
                <li><a tabindex="-1" href="#">Second level</a></li>
            </ul>
        </li>
    </ul>
</div>
{% endblock %}

Как вы, наверное, поняли, навигационная панель в моей базе. html - это с использованием bootstrap, который по причине, которую я проигнорировал, при попытке импортированию boostrap в моем шаблоне admin / base_site. html в целом нарушает стиль .

Не хватает ли важного стиля для работы страниц администратора? Я думал, что страница администратора уже использует bootstrap.

В таком случае, как можно сломать стиль, просто импортировав его в base_site. html?

Если нет, то можете представить, как можно ли объединить bootstrap с отсутствующим css стилем?

1 Ответ

0 голосов
/ 19 февраля 2020

Все страницы администратора наследуются от admin/base_site.html. Чтобы переопределить порядок, вы можете переопределить этот шаблон с помощью пользовательского кода.

Также этот шаблон должен быть загружен до загрузки приложения администратора. Вот несколько примеров шаблонов приложений, которые переопределяют базовый шаблон.

django -администратор-уведомление , django -админ-лента

...