Кой шаблон показва думите Администриране на сайта под цветния хоризонтален банер в страницата за администриране на 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="/bg../../../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="/bg../../../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="/bg../../../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="/bg{% static "my-app/admin-custom.css" %}">
{% endblock %}

Това показва замяна за всички екземпляри на change_form, но можете също така да замените шаблоните в отделните класове ModelAdmin и TabularInline и т.н.


В django-admin има доста наследяване, така че инсталирането на Django Debug Toolbar е много полезно, за да разберете какво да разширите (и къде трябва да бъде поставена вашата замяна в директорията с шаблони).

person ptim    schedule 01.06.2017