Reputation: 123
I'm getting "maximum recursion depth exceeded" when I try to run my template context processor.
settings.py looks like this:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
'web.context_content.base_context',
)
web/context_content.py:
from web import models
from django.shortcuts import render
from django.shortcuts import render_to_response
from django.template import RequestContext
#from django.conf import settings
def base_context(request):
categories = models.Category.objects.filter()
return render(request, "base.html", {'categories':categories})
Not sure why i'm getting such an odd error
UPDATE: my urls.py (site):
from django.conf.urls.defaults import *
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
from django.contrib.auth.views import login, logout
from web import views
from web import forms
admin.autodiscover()
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^register/$', views.register),
url(r'^login/$', views.login),
#url(r'^index/$', include('web.urls'))
url(r'^', include('cms.urls'))
)
if settings.DEBUG:
urlpatterns = patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns
I'm not using my app's urls.py for anything. But here it is anyway:
from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings
from django.conf.urls import patterns, include, url
from web import views
from web import forms
admin.autodiscover()
urlpatterns = patterns('web.views',
#url(r'^', views.base_context),
)
Upvotes: 2
Views: 206
Reputation: 599450
I'm not sure what you are trying to do with that context processor. They are for adding items to the template context, and should always return a dictionary: but for some reason you are rendering a template inside your function. Since the context processors are called by the render shortcut, your function end up calling itself, hence the infinite recursion.
Don't render a template in your context processor.
Upvotes: 1