如何重定向到另一个页面

时间:2015-06-02 12:29:49

标签: django

好吧,我的应用程序中有自己的会话和身份验证例程。当用户转到app/login/页面时,如果他或她不是loggen,则他/她会看到要提交的表单,否则我想将用户重定向到根页app/。登录视图如下所示:

def index(request):
    if sessionCheck(request):
        # here I want to redirect one level above to app/
        pass
    else:
        template = loader.get_template('login/login.html')
    ... other code which is not important

PHP,我想,我会这样做:

header("Location: /");
exit;

但我应该如何在Django完成同样的事情?

2 个答案:

答案 0 :(得分:1)

您可以使用redirect快捷键功能:

from django.shortcuts import redirect
return redirect('some-view-name')

您还可以指定除命名视图之外的URL。因此,如果您的索引网址没有名称,则可以指定“/”。

此快捷方式功能基本上是the same as

from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
return HttpResponseRedirect(reverse('some-view-name'))

要获得命名视图,请在urls.py中提供name参数。例如:

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^some-view$', views.something, name='some-view-name'),
]

有关Django tutorialDjango URL dispatcher的更多信息。

答案 1 :(得分:1)

您可以使用redirect

if sessionCheck(request):
    redirect(your_url)
else: 
    ...