好吧,我的应用程序中有自己的会话和身份验证例程。当用户转到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
完成同样的事情?
答案 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 tutorial,Django URL dispatcher的更多信息。
答案 1 :(得分:1)
您可以使用redirect
if sessionCheck(request):
redirect(your_url)
else:
...