2016-08-24 8 views
1

저는 이것이 여러 번 묻히고 답을 얻었지만 기본적으로 스택 오버플로에 대한 모든 게시물을 검토했지만 아직 작동하지 않습니다. 지금은 관리자 사이트 제목을 간단히 변경하려고합니다. 나는 다음과 같습니다django : admin 사이트 템플릿을 실제로 덮어 쓰는 방법은 무엇입니까?

#base_site.html 
{% extends "admin/base_site.html" %} 

{% block title %}{{ title }} | {{ site_title|default:_('NEW TITLE') }}{% endblock %} 

{% block branding %} 
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('NEW TITLE') }}</a></h1> 
{% endblock %} 

{% block nav-global %}{% endblock %} 

그리고,

my_site/템플릿/관리자/base_site.html에

my_site/템플릿/관리자 /을 my_app/base_site.html을이 으려고 및

my_site /을 my_app/템플릿/관리자/base_site.html,

그러나 이들 중 어느 것도 작동하지 않습니다.

settings.py: 
TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
      'loaders': [ 
       'django.template.loaders.filesystem.Loader', 
       'django.template.loaders.app_directories.Loader', 
      ], 
     }, 
    }, 
] 

는 또한 시도 단지 직접 변경 장고 \있는 contrib \ 관리 \ 템플릿 \ 관리자 \ base_site.html하지만 여전히 아무 일도 일어나지 않습니다. 정말 도움이 사용할 수 확실히 지금 좌절하고

, 감사

업데이트 : 는 사실은 내가 로컬 템플릿이 효과를 가지고 있음을 발견했다. 여기처럼 enter image description here

, 나는 우연히 주석으로 my_site/템플릿/관리자/base_site.html에 넣어 것입니다 맨 위의 흰색 막대에 "#[email protected]#". 그래서 다소 효과가 있지만 사이트 제목을 변경할 수없는 이유는 아직도 이해할 수 없습니다.

+0

을 원본 템플릿을 편집 할 때 그 다음, 작동하지 않습니다 심각하게 뭔가 이상한 일이 벌어지고합니다. 자신이 생각하는 곳에서 서버를 실행하고 있습니까? –

+0

@DanielRoseman 예, 저는 그것에 대해 아주 확신합니다. 그래서 지금 내 머리를 긁어 모으고있다. –

+0

https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#customizing-adminsite – allcaps

답변

3

먼저 당신의 settings.py를 열고 템플릿 폴더를 추가 :

TEMPLATES = [ 
{ 
    'DIRS': [ 
     '/path/to/your/django-project/templates', # Absolute Path 
     # os.path.join(BASE_DIR, 'templates') # Relative Path 
    ], 
    ... 

그런 다음 다음 디렉토리에 파일 base_site.html 이동합니다. 파일 시스템에 구조를 유지하는 것이 중요합니다. base_site의

/path/to/your/django-project/templates/admin/base_site.html

내용.HTML : 도움이

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

{% block title %}{{ title }} | {{ site_title|default:_('NEW TITLE') }}{% endblock %} 

{% block branding %} 
<h1 id="site-name"><a href="{% url 'admin:index' %}">Your new Title</a></h1> 
{% endblock %} 

{% block nav-global %}{% endblock %} 

Django Documentation - Overriding Admin Site

희망.

0

사용 my_site /을 my_app/템플릿/관리자/base_site.html

link

을 INSTALLED_APPS 당신이 'django.contrib.admin'전에이 템플릿을 정의하여 응용 프로그램을 넣어
+0

고맙지 만 나는 이미 그 모든 것을했는지 확신한다. 헛되이 –

0

템플릿에서 site_title을 삭제해야합니다. INSTALLED_APPS의 앱 순서는 중요하지 않습니다.

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

{% block title %}{{ title }} | {{ _('NEW TITLE') }}{% endblock %} 

{% block branding %} 
    <h1 id="site-name"> 
     <a href="{% url 'admin:index' %}"> 
      {{ _('NEW TITLE') }} 
     </a> 
    </h1> 
{% endblock %} 

{% block nav-global %}{% endblock %} 
2

따라서 중괄호를 포함하여 삭제하고 원하는 텍스트를 작성해야합니다.

 
Remove: `{{ site_title|default:_('NEW TITLE') }}` Write: NEW TITLE 
Remove: `{{ site_header|default:_('NEW TITLE' }}` Write: NEW TITLE 

또한 프로젝트의 루트 디렉토리에 폴더 (templates/admin)를 배치했는지 확인하십시오. 루트 디렉토리는 모든 app 폴더 및 manage.py 파일의 컨테이너입니다.

즉, 만들려는 "templates"폴더는 manage.py 파일과 같은 레벨에 있어야합니다.

귀하의 폴더 구조는 다음과 같아야합니다

 
mysite/ 
    templates/ admin/ base_site.html 
    manage.py 
    mysite/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 
    ... 
    ... 
+0

슈퍼 유용한 계층 구조를 보여 주, 감사합니다 Logged –

관련 문제