Django:如果在 urls.py 中登录,则重定向到不同的页面

Posted

技术标签:

【中文标题】Django:如果在 urls.py 中登录,则重定向到不同的页面【英文标题】:Django: Redirect to different page if logged in in urls.py 【发布时间】:2018-07-17 06:35:40 【问题描述】:

我有这个网址:

url(r'^signup/$', TemplateView.as_view(template_name='users/signup.html')),

如果用户尝试访问此页面并且已经登录,我希望用户被重定向到不同的 url。

无论如何我可以在 urls.py 中执行此操作,还是必须为它编写一个视图?

【问题讨论】:

【参考方案1】:

我不知道在 urls.py 中执行此操作的方法,因此会在视图中执行此操作。

你可以用这个来检查:

if request.user.is_authenticated: # Do something

您也可以在模板中执行此操作:

% if user.is_authenticated %

这个问题可能会有所帮助: How to check if a user is logged in (how to properly use user.is_authenticated)?

【讨论】:

【参考方案2】:

你可以使用HttpResponseRedirect

类似的东西

from django.http import HttpResponseRedirect

def signup(request): # this is your signup view
    if request.user.is_authenticated:
        return HttpResponseRedirect('/dashboard/')

看起来还有一个redirect 快捷方式(最终也有一个HttpResponseRedirect)。

【讨论】:

以上是关于Django:如果在 urls.py 中登录,则重定向到不同的页面的主要内容,如果未能解决你的问题,请参考以下文章

如果条件在urls.py - django

django 登录注册

Django 不反映对 urls.py 的更改

Django之Urls.py模块

如果在 django 的 urls.py 中找不到,则将任何 url 重定向到 404.html

django中cookie登录认证