관리 메뉴

Storage Gonie

38. (app2) 템플릿 확장을 이용한 admin 템플릿 수정 본문

웹개발/Django 웹서비스 개발(인프런)

38. (app2) 템플릿 확장을 이용한 admin 템플릿 수정

Storage Gonie 2019. 2. 20. 21:25
반응형

# 템플릿 확장을 이용한 admin 템플릿 수정

1. settings.py의 INSTALLED_APP에서 app 이름이 맨 뒤에 있으면 admin 템플릿 적용이 잘 안되므로 맨 앞으로 옮긴다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
]
INSTALLED_APPS = [
'polls',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

2. settings.py의 TEMPLATES에서 DIR의 파라미터에 다음의 경로를 적어넣어준다.

- os.path.join(BASE_DIR, 'tempates')

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'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',
],
},
},
]

3. templates/ 아래에 admin폴더를 만들고, 그 아래에 base_site.html을 만들어준다.

- templates/admin/base_site.html

- extends 는 템플릿을 확장시키는 것을 의미한다. 아래의 코드는 admin/base.html 코드는 그대로 유지하면서 어느 특정 위치에 아래의 코드를 삽입한 것을 사용하겠단 의미.

- extends 다음에 나오는 admin/base.html은 아래의 위치에 존재하는 기존의 admin파일을 의미한다.

- "python"

- "import django"

- "print(django.__path__)" # '/Users/사용자이름/anaconda3/envs/app2env/lib/python3.5/site-packages/django'

- 맨 아래의 django 폴더에서 contrib/admin/templates/admin/base.html

- 실행한 결과 admin페이지 그대로 보여지며 보여지는 이름이 'Django 관리'에서 '투표관리자'로 변경된 것을 볼 수 있다.

- 사소한 것을 custumize하면 약간이나마 완성도를 높일 수 있음.

{% 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' %}">투표관리자</a></h1>
{% endblock %}

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






반응형
Comments