Django从上下文处理器函数中访问会话变量

Django从上下文处理器函数中访问会话变量,django,Django,我正在将视图中的会话变量设置为: def festival_theme(request, year, month, day, slug): festival = Project.objects.get(category__name=__('festival'), slug=slug) request.session['_active_festival_id'] = festival.id return render(request, 'web/festival/the

我正在将视图中的会话变量设置为:

def festival_theme(request, year, month, day, slug):
    festival = Project.objects.get(category__name=__('festival'), slug=slug)

    request.session['_active_festival_id'] = festival.id

    return render(request, 'web/festival/theme.html', {'festival':festival,})
在我的上下文处理器函数中,我想得到这个会话变量的值。我怎样才能做到这一点

我试过:

#context_processors.py
def festivals(request):
    s = SessionStore()
    activeFestivalId = s['_active_festival_id']
    allFestivals = Project.objects.filter(category__name='festival').order_by('-date')
    return {'allFestivals':allFestivals}

您应该能够使用上下文处理器中的
request.session
访问会话

#context_processors.py
def festivals(request):
    activeFestivalId = request.session.get('_active_festival_id', None)
    allFestivals = Project.objects.filter(
        category__name='festival').order_by('-date')
    return {'allFestivals': allFestivals}

用您的
设置更新问题。py
您是否也尝试过像编写它那样简单地访问它?因此,不必创建新的
会话存储
,只需使用
request.session
?是的,我可以使用request.session进行访问,但上下文处理器会在查看之前启动@Burhan:settings.py中的上下文处理器没有问题。我有所有必需的上下文处理器和中间件…你说的“上下文处理器在查看之前启动”是什么意思?上下文处理器由模板渲染器调用,该渲染器是从
render
函数调用的,即在视图中。确定。你的回答是正确的。我还有一个问题,但与这个问题无关。非常感谢。