반응형
모든 뷰, 템플릿에 적용되는 공통 context 변수는 어떻게 설정할까?
결론부터 말하자면, 딕셔너리 타입을 반환하는 메소드를 하나 만들어서 settings.py에서 TEMPLATE -> OPTIONS -> context_processors에 추가해주면 된다.
1. 딕셔너리 타입을 반환하는 메소드 작성
- 파일을 하나 만들어서 딕셔너리 타입을 반환하는 메소드를 작성한다. 반환되는 딕셔너리의 key, value는 각각 context 변수의 key, value 값으로 추가된다. {'timelist':timelist}를 리턴했다는 사실에 주목하면 된다.
import time
def get_timelist(self):
timelist = []
now = time.localtime(time.time())
now_year = now.tm_year
now_mon = now.tm_mon
for i in range(-6, 7):
if now_mon + i < 1:
timelist.append([now_year - 1, now_mon + i + 12])
elif now_mon + i > 12:
timelist.append([now_year + 1, now_mon + i - 12])
else:
timelist.append([now_year, now_mon + i])
return {'timelist':timelist}
2. settings.py의 TEMPLATE -> OPTIONS -> context_processors에 추가
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',
'utils.context_processors.get_timelist',
],
},
},
]
이제 어떤 템플릿에서든 다음과 같이 context 변수를 사용할 수 있다.
반응형
'Django' 카테고리의 다른 글
[Django] 제네릭 뷰의 페이징 기능 (0) | 2023.02.15 |
---|---|
[Django] QuerySet에서 사용하는 '__'의 의미 (0) | 2023.02.13 |
[Django] 날짜형 클래스형 뷰에서 404 에러가 발생하는 경우 (0) | 2023.02.11 |
[Django] 가상 환경에서 Django 사용하기 (0) | 2023.02.01 |
[Django] wsgi.py의 역할 및 배포 설정 사항 (0) | 2023.01.26 |
댓글