Django会话在登录后间歇性地消失

时间:2009-10-01 15:10:01

标签: django session login

在我的django应用程序中,我按以下方式处理登录。用户转到网关页面(index.html) - 如果他们当前未登录,则会有一个登录/密码表单以及其他材料。成功登录后(或者如果他们在登录时以其他方式转到该页面),页面的呈现方式略有不同(无登录表单)。

我正在处理的方式是在index.html的视图中我做的:

logged_in = request.user.is_authenticated()

然后将logged_in变量传递给模板,检查该模板以查看它呈现的页面版本。

当用户登录时,登录视图会调用:

user = authenticate(username=username, password=password)
if user is not none:
    login(request, user)

然后将它们重定向回index.html。

通常情况下,这完全没问题。我看到的是,有时在HttpResponseRedirect和索引视图之间的是request.user被清除。我已经记录了一段时间了,写入日志作为登录视图中的最后一项和索引视图中的第一项。它对用户的影响是看起来他们错误地登录(除了没有消息告诉他们)。

它确实似乎是喷射,因为在系统中会好一段时间,然后我会看到它连续4-5次发生在用户身上。我还应该注意到,除了在登录时,我从来没有看到/听到过这种情况,据我所知(它可能已经发生并且没有人抱怨)一旦他们进来,他们就进来了。

我在这里做了一些明显错误的登录方法吗?

1 个答案:

答案 0 :(得分:1)

Apache + Mod Python或WSGI使用线程并可能预先缓存您的请求(取决于您的conf)。因此,如果您在代码中更改了某些内容,则必须重新启动Apache。然后问题应该消失。

相关问题