Django:用户会话过期后找不到页面

时间:2014-02-27 17:26:34

标签: django

我有一个运行良好的django管理站点。 假设有一个名为Example的应用程序:

我们有意见:

@login_required
def example_index():
    something...
    return

网址是:

urlpattern = patterns("", url(r'^(\d+)/index/$', example_index))

在主要的url文件中,我们在urlpattern上面包含以下内容:

urlpatterns = patterns('', url(r'^example/', include(example.urlpattern)))

显然,我的文件中还有其他一些东西,但我想我已经提供了这个问题的所有相关代码。

用户登录后,用户可以访问url / hostname / example / 1001 / index /。它运作得很好。

然后问题是,在某些时候,当用户的会话已经过期时,如果用户尝试刷新页面,浏览器将返回404页面未找到(相同的网址:example / 1001 / index /)。

我的观点是,我希望django将用户重定向到登录页面,并将用户重定向回用户再次获得会话后的任何页面。此行为适用于django管理站点的其余部分,但不适用于此“示例”。

避免此崩溃的简单方法是删除装饰器:

@login_required

但我不想那样走。

有谁知道我应该怎样做才能使重新定位和重定向工作符合预期?

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试在装饰器处添加login_url,以便在用户未登录时重定向。

@login_required(login_url='/login/')

使用您的登录网址替换登录信息。