답변:
업데이트 : Django 1.7 이상을 사용하는 경우 아래 답변을 참조하십시오 .
2011의 원래 답변 :
이렇게하려면 고유 한 관리자 base_site.html
템플릿을 만들어야합니다 . 가장 쉬운 방법은 파일을 만드는 것입니다.
/<projectdir>/templates/admin/base_site.html
다음은 맞춤 제목을 제외하고 원본base_site.html
의 사본이어야합니다 .
{% block branding %}
<h1 id="site-name">{% trans 'my cool admin console' %}</h1>
{% endblock %}
이것이 작동하려면 프로젝트에 대한 올바른 설정이 있어야합니다 settings.py
.
/projectdir/templates/
에 추가되어 있는지 확인하십시오 TEMPLATE_DIRS
.django.template.loaders.filesystem.Loader
에 추가되어 있는지 확인하십시오 TEMPLATE_LOADERS
.{% extends "admin/base.html" %}
있고 /<projectdir>/templates/admin/base_site.html
필요한 블록을 다시 정의하기 만하면 {% block branding %}...{% endblock %}
됩니다.
TEMPLATE_LOADER
설정을 추가하지 않아도 작동 합니다. 그냥 TEMPLATE_DIR
이 충분히 보인다
Django 1.7부터 템플릿을 재정의 할 필요가 없습니다. 이제 구현할 수 site_header , site_title
및 index_title
사용자 정의의 특성 AdminSite을 쉽게 관리 사이트의 페이지 제목 및 머리글 텍스트를 변경하기 위해. AdminSite 서브 클래스를 작성하고 인스턴스를 URLconf에 연결하십시오.
admin.py :
from django.contrib.admin import AdminSite
from django.utils.translation import ugettext_lazy
class MyAdminSite(AdminSite):
# Text to put at the end of each page's <title>.
site_title = ugettext_lazy('My site admin')
# Text to put in each page's <h1> (and above login form).
site_header = ugettext_lazy('My administration')
# Text to put at the top of the admin index page.
index_title = ugettext_lazy('Site administration')
admin_site = MyAdminSite()
urls.py :
from django.conf.urls import patterns, include
from myproject.admin import admin_site
urlpatterns = patterns('',
(r'^myadmin/', include(admin_site.urls)),
)
업데이트 :만큼 당신이 간단하게 설정할 수 있습니다 oxfn 지적 site_header
당신에 urls.py
또는 admin.py
서브 클래스하지 않고 직접 AdminSite
:
admin.site.site_header = 'My administration'
admin_site
만든 모델을 등록해야합니다 . 처럼admin_site.register(MyModel, ModelAdmin)
admin/base_site.html
예 : 템플릿에 따라 달라집니다 ( 예 : password_reset) extra_context
URL 에도 사용해야합니다. 예url(r'^password_reset/$', auth_views.password_reset, name='admin_password_reset', kwargs={'extra_context': {'site_header': "My administration"}})
admin.site.site_header
구성 app*/admin.py
이 적용됩니까?
관리 사이트 헤더를 설정하는 쉬운 방법이 있습니다-다음 urls.py
과 같이 현재 관리 인스턴스에 할당하십시오
admin.site.site_header = 'My admin'
또는 별도의 방법으로 헤더 작성 마법을 구현할 수 있습니다
admin.site.site_header = get_admin_header()
따라서 간단한 경우에는 서브 클래스가 필요하지 않습니다. AdminSite
admin.site.site_title = 'My site admin'
.
urls.py
.from django.contrib import admin
AdminSite
읽고 , 서브 클래스 를 만들고 작업을 시도 autodiscover()
했지만 결국이 솔루션을 스스로 생각했습니다. 나는 실제로 내 재정이 admin.py
나는 그것이 다른 관리 관련 로직을 모두와 함께 유지 년대 이후 청소기라고 생각
에서 urls.py
당신에게 가장 중요한 3 개 가지 변수를 대체 할 수 있습니다 :
from django.contrib import admin
admin.site.site_header = 'My project' # default: "Django Administration"
admin.site.index_title = 'Features area' # default: "Site administration"
admin.site.site_title = 'HTML title from adminsitration' # default: "Django site admin"
참조 : 이 속성들에 대한 장고 문서 .
이 질문에 대한 답변을 바탕으로 Django 1.8.3의 간단한 완벽한 솔루션입니다.
에 settings.py
추가 :
ADMIN_SITE_HEADER = "My shiny new administration"
에 urls.py
추가 :
from django.conf import settings
admin.site.site_header = settings.ADMIN_SITE_HEADER
admin.py
. 아직 가지고 있지 않다면 작성하고 추가하는 것을 잊지 마십시오 from django.contrib import admin
.
ADMIN_SITE_HEADER
여기서 중요한 것은 다음 줄입니다.urls.py
가장 쉬운 방법은
from django.contrib import admin
그런 다음 url.py
기본 응용 프로그램 하단에 추가하십시오.
admin.site.site_title = "Your App Title"
admin.site.site_header = "Your App Admin"
템플릿 에서 볼 수 있듯이 텍스트는 현지화 프레임 워크를 통해 전달됩니다 ( trans
템플릿 태그 사용에 유의 ). 템플릿을 직접 만들지 않고도 번역 파일을 변경하여 텍스트를 재정의 할 수 있습니다.
mkdir locale
./manage.py makemessages
locale/en/LC_MESSAGES/django.po
다음 행을 추가하여 편집하십시오 .
msgid "Django site admin"
msgstr "MySite site admin"
msgid "Django administration"
msgstr "MySite administration"
./manage.py compilemessages
https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files를 참조 하십시오
admin.py :
from django.contrib.admin import AdminSite
AdminSite.site_title = ugettext_lazy('My Admin')
AdminSite.site_header = ugettext_lazy('My Administration')
AdminSite.index_title = ugettext_lazy('DATA BASE ADMINISTRATION')
from django.utils.translation import ugettext_lazy
이 줄을 추가하는 것을 잊지 마십시오.
우선, templates / admin / base_site.html을 프로젝트에 추가해야합니다. 이 파일은 Django 개발자가 관리 사이트를 약간 사용자 정의하기위한 정확한 목적으로 의도 한 파일이므로 안전하게 덮어 쓸 수 있습니다. 파일에 넣을 예제는 다음과 같습니다.
{% extends "admin/base.html" %}
{% load i18n %}
{% block title %}{{ title }} | {% trans 'Some Organisation' %}{% endblock %}
{% block branding %}
<style type="text/css">
#header
{
/* your style here */
}
</style>
<h1 id="site-name">{% trans 'Organisation Website' %}</h1>
{% endblock %}
{% block nav-global %}{% endblock %}
이것은 일반적인 관행입니다. 그러나이 후에도 여전히 기본 관리자 색인 페이지에 성가신 "사이트 관리"가 남아 있음을 알았습니다. 그리고이 문자열은 템플릿 안에 있지 않고 관리자보기 안에 설정되었습니다. 운 좋게도 변경하기가 쉽습니다. 언어가 영어로 설정되어 있다고 가정하면 프로젝트 디렉토리에서 다음 명령을 실행하십시오.
$ mkdir locale
$ ./manage.py makemessages -l en
이제 locale / en / LC_MESSAGES / django.po 파일을 열고 헤더 정보 다음에 두 줄을 추가하십시오 (이 예제의 마지막 두 줄).
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-04-03 03:25+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Site administration"
msgstr "Main administration index"
그런 다음, 다음 명령을 실행하고 프로젝트 서버를 다시로드하십시오.
$ ./manage.py compilemessages
출처 : http://overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/
에서 장고 2.0 당신은 단지에 한 줄을 추가 할 수 url.py
와 이름을 변경합니다.
# url.py
from django.contrib import admin
admin.site.site_header = "My Admin Central" # Add this
Django의 이전 버전의 경우 . (<1.11 이하) 편집해야합니다admin/base_site.html
이 줄을 변경
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
에
{% block title %}{{ title }} | {{ site_title|default:_('Your Site name Admin Central') }}{% endblock %}
당신은 django
버전을 확인할 수 있습니다
django-admin --version
이 작업을 위해 템플릿을 변경할 필요는 없습니다 settings.py
. 프로젝트의 업데이트 만하면 됩니다. 하단으로 가서 settings.py
이것을 정의하십시오.
admin.site.site_header = 'My Site Admin'
이런 식으로 Django 관리자의 헤더를 변경할 수 있습니다. 또한 다음 링크에서 Django Admin 사용자 정의 및 설정에 대한 자세한 내용을 읽을 수 있습니다.
이를 수행하는 두 가지 방법이 있습니다.
1] base_site.html
에서 재정 의하여 django/contrib/admin/templates/admin/base_site.html
다음을 수행하십시오 base_site.html
.
{% extends "admin/base.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}
{% block nav-global %}{% endblock %}
위 코드 스 니펫에서 site_title & site_header를 편집하십시오. 이 방법은 작동하지만 정적 변경이므로 권장되지 않습니다.
2] urls.py
프로젝트 디렉토리 에 다음 줄을 추가하여 :
admin.site.site_header = "AppHeader"
admin.site.site_title = "AppTitle"
admin.site.index_title = "IndexTitle"
이 방법은 사이트 헤더, 사이트 제목 및 색인 제목을 편집하지 않고 변경할 수 있으므로 권장됩니다 base_site.html
.
admin/base_site.html
템플릿을 재정의하고 ( 템플릿을 복사 django.contrib.admin.templates
하여 자신의 관리자 템플릿 디렉토리에 삽입) branding
블록을 교체하면 됩니다.