creating my own context processor in django
Solution 1:
The context processor you have written should work. The problem is in your view.
Are you positive that your view is being rendered with RequestContext
?
For example:
def test_view(request):
return render_to_response('template.html')
The view above will not use the context processors listed in TEMPLATE_CONTEXT_PROCESSORS
. Make sure you are supplying a RequestContext
like so:
def test_view(request):
return render_to_response('template.html', context_instance=RequestContext(request))
Solution 2:
According to the django docs you can use render
as a shortcut instead of render_to_response with the context_instance argument:
Alternatively, use the
render()
shortcut which is the same as a call to render_to_response() with a context_instance argument that forces the use of a RequestContext.
Solution 3:
Since Django 1.8 you register your custom context processors like this:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'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',
'www.context_processors.instance',
],
},
},
]
assuming your context processor is in app www
in context_processors.py