Какой шаблон показывает слова «Администрирование сайта» под цветным горизонтальным баннером на странице администратора Django? - PullRequest
3 голосов
/ 28 марта 2012

Я хочу изменить слова «Администрирование сайта» на что-то другое на странице администратора.Я попробовал пару grep команд, но не смог найти правильный шаблон:

hobbes3@hobbes3 ~/Sites/mysite/site-packages/django/contrib/admin/templates $ grep -ri "site administration" .
hobbes3@hobbes3 ~/Sites/mysite/site-packages/django/contrib/admin/templates $ grep -ri "administration" .
./admin/base_site.html:<h1 id="site-name">{% trans 'Django administration' %}</h1>
hobbes3@hobbes3 ~/Sites/mysite/site-packages/django/contrib/admin/templates $ grep -ri "site" .
./admin/404.html:{% extends "admin/base_site.html" %}
./admin/500.html:{% extends "admin/base_site.html" %}
./admin/500.html:<p>{% trans "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." %}</p>
./admin/auth/user/change_password.html:{% extends "admin/base_site.html" %}
./admin/base_site.html:{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}
./admin/base_site.html:<h1 id="site-name">{% trans 'Django administration' %}</h1>
./admin/change_form.html:{% extends "admin/base_site.html" %}
./admin/change_form.html:    {% if has_absolute_url %}<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif%}
./admin/change_list.html:{% extends "admin/base_site.html" %}
./admin/delete_confirmation.html:{% extends "admin/base_site.html" %}
./admin/delete_selected_confirmation.html:{% extends "admin/base_site.html" %}
./admin/edit_inline/stacked.html:    {% if inline_admin_form.show_url %}<a href="../../../r/{{ inline_admin_form.original_content_type_id }}/{{ inline_admin_form.original.id }}/">{% trans "View on site" %}</a>{% endif %}
./admin/edit_inline/tabular.html:          {% if inline_admin_form.show_url %}<a href="../../../r/{{ inline_admin_form.original_content_type_id }}/{{ inline_admin_form.original.id }}/">{% trans "View on site" %}</a>{% endif %}
./admin/index.html:{% extends "admin/base_site.html" %}
./admin/invalid_setup.html:{% extends "admin/base_site.html" %}
./admin/login.html:{% extends "admin/base_site.html" %}
./admin/object_history.html:{% extends "admin/base_site.html" %}
./admin/object_history.html:    <p>{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}</p>
./registration/logged_out.html:{% extends "admin/base_site.html" %}
./registration/logged_out.html:<p>{% trans "Thanks for spending some quality time with the Web site today." %}</p>
./registration/password_change_done.html:{% extends "admin/base_site.html" %}
./registration/password_change_form.html:{% extends "admin/base_site.html" %}
./registration/password_reset_complete.html:{% extends "admin/base_site.html" %}
./registration/password_reset_confirm.html:{% extends "admin/base_site.html" %}
./registration/password_reset_done.html:{% extends "admin/base_site.html" %}
./registration/password_reset_email.html:{% blocktrans %}You're receiving this e-mail because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %}
./registration/password_reset_email.html:{% trans "Thanks for using our site!" %}
./registration/password_reset_email.html:{% blocktrans %}The {{ site_name }} team{% endblocktrans %}
./registration/password_reset_form.html:{% extends "admin/base_site.html" %}

Я смотрю в неправильном месте или что-то в этом роде?

РЕДАКТИРОВАТЬ:

После некоторого копания я думаю, что это как-то связано с {% block content_title %}{% endblock %} внутри base.html ...

РЕДАКТИРОВАТЬ 2:

Вот снимок экрана со словами «Администрирование сайта», о котором я говорю на домашней странице администратора.

image

Ответы [ 3 ]

3 голосов
/ 28 марта 2012

Заголовок _("Site administration") определяется как файл sites.py в contrib/admin/.Либо вы меняете эту строку там и должны помнить, чтобы менять ее каждый раз, когда обновляете Django (не рекомендуется), либо вы переопределяете шаблон base_site.html и добавляете заголовок вручную.

3 голосов
/ 28 марта 2012

Дайте документам прочитать; admin docs и настройка внешнего вида

Простой пример настройки шаблона для администратора, который перезаписывает значение по умолчанию;

Шаблон для настройки - admin / index.html.(Сделайте то же самое, что и с admin / base_site.html в предыдущем разделе - скопируйте его из каталога по умолчанию в каталог пользовательских шаблонов.) Отредактируйте файл, и вы увидите, что он использует переменную шаблона с именем app_list.Эта переменная содержит все установленные приложения Django.Вместо этого вы можете жестко закодировать ссылки на специфичные для объекта страницы администратора любым удобным для вас способом.Опять же, не беспокойтесь, если вы не понимаете язык шаблона - мы рассмотрим это более подробно в уроке 3.

Я прошел все уроки в связанных с Django документах, которые я связалпару недель назад, но не могу найти пример пользовательского шаблона администратора, но этот сайт, похоже, поможет вам понять его;

http://blog.montylounge.com/2009/07/5/customizing-django-admin-branding/

0 голосов
/ 01 июня 2017

Думаю, я бы добавил более свежую справочную информацию по этому старому вопросу, поскольку он все еще просматривается и активен, и я нахожу, что документы в подавляющем большинстве случаев тщательными.

Подкласс AdminSite для переименования переменных шаблона

myapp/admin.py

from django.contrib.admin import AdminSite

from .models import MyModel

class MyAdminSite(AdminSite):
    # this is the variable you asked about
    site_header = 'Monty Python administration'

admin_site = MyAdminSite(name='myadmin')
admin_site.register(MyModel)

myproject/urls.py

from django.conf.urls import url

from myapp.admin import admin_site

urlpatterns = [
    url(r'^myadmin/', admin_site.urls),
]

Ссылка: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#customizing-adminsite

Свойства , которые вы можете настроить на своем сайте admin_site:

site_header, site_title, site_url, index_title, index_template,
app_index_template, empty_value_display, login_template, login_form, 
logout_template, password_change_template, password_change_done_template

Расширение шаблонов администратора

Кроме того, вы можете расширить стандартные шаблоны администратора:

{% extends "admin/change_form.html" %}

{% block object-tools-items %}
<p>
    Let's nuke this block and add custom content!
    The rest of the default change_form template remains the same.
</p>
{% endblock %}

Ссылка: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates

Другим примером этого является добавление пользовательской таблицы стилей:

{% extends "admin/base.html" %}
{% load static %}

{% block extrahead %}
    <link rel="stylesheet" href="{% static "my-app/admin-custom.css" %}">
{% endblock %}

Здесь показано переопределение для всех экземпляров change_form, но вы также можете переопределить шаблоны в отдельных классах ModelAdmin, TabularInline и т. Д.


В django-admin происходит наследование, поэтому установка Django Debug Toolbar очень полезна для определения того, что нужно расширять (и где ваше переопределение должно быть помещено в каталог шаблонов).

...