0

我用 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}
4

1 回答 1

2

上下文处理器不适合这种逻辑,尤其是会话修改。您应该将其移至中间件或视图功能。

为什么您的方法不起作用:上下文处理器只是修改正在呈现的模板的上下文,并在您的视图函数之后应用。请参阅“应用上下文处理器时”

于 2013-03-07T15:40:27.183 回答