2 回答
TA贡献1906条经验 获得超10个赞
您可以通过修改 urls.py 文件来重定向用户,如下所示:
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
app_name = 'account'
urlpatterns = [
path('signup/', views.register, name='register'),
path('', auth_views.LoginView.as_view(redirect_authenticated_user=True), name='login'),
]
这将从登录页面重定向已通过身份验证的用户。对于注册,您必须自定义您的注册功能,添加一个 if 用户是否经过身份验证检查。
TA贡献1836条经验 获得超5个赞
你也可以使用这个装饰器。
def login_excluded(redirect_to):
""" This decorator kicks authenticated users out of a view """
def _method_wrapper(view_method):
def _arguments_wrapper(request, *args, **kwargs):
if request.user.is_authenticated:
return redirect(redirect_to)
return view_method(request, *args, **kwargs)
return _arguments_wrapper
return _method_wrapper
然后在您的 views.py 中调用它。
@login_excluded('app:redirect_to_view')
def someview(request):
# ...
添加回答
举报