Django                
            컨텍스트 프로세서
        
        
            
    수색…
비고
컨텍스트 프로세서를 사용하여 템플릿의 어느 곳에서나 액세스 할 수있는 변수를 추가하십시오.
 함수를 지정하거나 반환하는 함수 dict 원하는 변수들, 그 다음에 그 기능을 추가 TEMPLATE_CONTEXT_PROCESSORS . 
컨텍스트 프로세서를 사용하여 설정에 액세스합니다. 템플릿의 .DEBUG
 myapp/context_processors.py . 
from django.conf import settings
def debug(request):
  return {'DEBUG': settings.DEBUG}
 settings.py : 
TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'myapp.context_processors.debug',
            ],
        },
    },
]
또는 <1.9 버전의 경우 :
TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'myapp.context_processors.debug',
)
그런 다음 내 템플릿에서 간단하게 :
 {% if DEBUG %} .header { background:#f00; } {% endif %}
 {{ DEBUG }}
컨텍스트 프로세서를 사용하여 모든 템플릿의 가장 최근 블로그 항목에 액세스합니다.
 models.py 파일에 정의 된 Post 라는 모델을 블로그 게시물이 있고 date_published 필드가 있다고 date_published 합니다. 
1 단계 : 컨텍스트 프로세서 작성
 응용 프로그램 디렉토리에 context_processors.py 라는 파일을 만들거나 추가하십시오. 
from myapp.models import Post
def recent_blog_posts(request):
    return {'recent_posts':Post.objects.order_by('-date_published')[0:3],}  # Can change numbers for more/fewer posts
2 단계 : 설정 파일에 컨텍스트 프로세서 추가
 TEMPLATES 변수의 settings.py 파일에 새 컨텍스트 프로세서를 추가했는지 확인하십시오. 
TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'myapp.context_processors.recent_blog_posts',
            ],
        },
    },
]
 (장고 버전 1.9 이전에서는 TEMPLATE_CONTEXT_PROCESSORS 변수를 사용하여 settings.py 에서 직접 settings.py .) 
3 단계 : 템플릿에서 컨텍스트 프로세서 사용
 더 이상 개인적인 의견을 통해 최근 블로그 항목을 전달할 필요가 없습니다! 모든 템플릿에서 recent_blog_posts 를 사용하기 recent_blog_posts 됩니다. 
 예를 들어, home.html 에서 최근 게시물에 대한 링크가있는 사이드 바를 만들 수 있습니다. 
<div class="blog_post_sidebar">
    {% for post in recent_blog_posts %}
        <div class="post">
            <a href="{{post.get_absolute_url}}">{{post.title}}</a>
        </div>
    {% endfor %}
</div>
 또는 blog.html 에서 각 게시물에 대한 자세한 표시를 만들 수 있습니다. 
<div class="content">
    {% for post in recent_blog_posts %}
        <div class="post_detail">
            <h2>{{post.title}}</h2>
            <p>Published on {{post.date_published}}</p>
            <p class="author">Written by: {{post.author}}</p>
            <p><a href="{{post.get_absolute_url}}">Permalink</a></p>
            <p class="post_body">{{post.body}}</p>
        </div>
    {% endfor %}
</div>
템플릿 확장하기
컨텍스트 프로세서를 사용하여 그룹 구성원 (또는 모든 쿼리 / 논리)을 기반으로 템플릿을 결정합니다. 이를 통해 일반 / 일반 사용자는 하나의 템플릿과 특수 그룹을 가져와 다른 템플릿을 얻을 수 있습니다.
myapp / context_processors.py
def template_selection(request):
    site_template = 'template_public.html'
    if request.user.is_authenticated():
        if request.user.groups.filter(name="some_group_name").exists():
            site_template = 'template_new.html'
    return {
        'site_template': site_template,
    }
컨텍스트 프로세서를 설정에 추가하십시오.
템플릿에서 컨텍스트 프로세서에 정의 된 변수를 사용합니다.
{% extends site_template %}