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

Я хочу изменить слова «Администрирование сайта» на что-то другое на странице администратора. Я попробовал пару 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:

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


person hobbes3    schedule 28.03.2012    source источник
comment
Это не ответ, но для такого рода вещей вы обнаружите, что ack намного лучше, чем grep. betterthangrep.com   -  person craigds    schedule 28.03.2012
comment
Вау, я только что использовал ack. Очень круто! Спасибо за чаевые!   -  person hobbes3    schedule 28.03.2012


Ответы (3)


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

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

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

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

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

person markwalker_    schedule 28.03.2012

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

person Mikael    schedule 28.03.2012
comment
base_site.html позволяет изменить только слова администрация Django, а не слова администрация сайта, которые находятся под ними. Я прикреплю скриншот, чтобы объяснить вам, что я имею в виду. - person hobbes3; 28.03.2012

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

Подкласс 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 очень полезен для выяснения того, что нужно расширить (и где ваше переопределение должно быть размещено в каталоге шаблонов).

person ptim    schedule 01.06.2017