예를 들어 현재 로그인한 경우 상단 navbar의 UsefulSites에는 Custom 항목이 보입니다.
navbar는 현재 웹사이트의 모든 페이지에 보이기 때문에, 개인이 설정한 즐겨찾기가 항상 로드되어야 합니다.
이럴 경우 모든 view파일에 해당 정보를 제공하는 것은 어렵습니다. 이 때, 다음과 같은 순서로 이 문제를 해결할 수 있습니다.
settings.py 파일에 Templates 설정 항목에서 'context_processors' 항목을 찾습니다.
여기에 (앱이름).context_processors.(정의할함수이름) 을 추가합니다. 다음은 북마크 생성시 사용한 예시입니다.
1 2 3 4 5 6 7 8 9 10 11 | TEMPLATES = [ { ... 'OPTIONS': { 'context_processors': [ ... 'tboard.context_processors.bookmark_context', ], }, }, ] | cs |
앱폴더 안에 위파일이 없다면 만들고 다음과 같은 형태로 코드를 작성합니다.
저는 로그인한 경우 로그인한 사람의 bookmark 정보를 bookmarks에 담아 보내는 함수입니다.
1 2 3 4 5 6 7 8 9 | from .models import Bookmark def bookmark_context(request): context = {} if request.user.is_authenticated: bookmarks = Bookmark.objects.filter(user=request.user) context['bookmarks'] = bookmarks return context | cs |