Django上下文处理器:视图不重新加载

时间:2013-03-07 14:38:20

标签: django django-views

我用Django构建了一个包含一定数量视图的应用程序。我必须从一个项目切换到另一个使用相同视图的项目。

为此,我使用了一个上下文处理器,它返回在一个字典中发生变化的变量。然后在我的所有观看中,我返回context_instance=RequestContext(request)

我的问题是,在我再次点击“更改项目”按钮后,我的视图才会重新加载。

我不知道我是否足够清楚,但是如果有人能给我一个关于这里错误的提示,那就太棒了。 我甚至不知道哪一段代码有助于理解这个问题,所以如果您认为可以提供帮助,请询问!

修改

我的context_processor

的示例
from django.shortcuts import render_to_response
from django.core.context_processors import csrf
from django.template import RequestContext

def display_select_proj(request):
if request.method == "POST" and (request.POST.get("action", "") == "OK"):
     form = SelectForm(request.POST, proj_id=request.session['proj'])
     if form.is_valid():
         p = form.save()
         request.session['proj'] = proj

         return {'my_variables': my_variables}

1 个答案:

答案 0 :(得分:2)

上下文处理器不适合这种逻辑,特别是会话修改。您应该将其移至middleware或查看功能。

为什么你的方法不起作用:上下文处理器只修改正在渲染的模板的上下文,并在你的视图函数之后应用。 See "When context processors are applied"