您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django-登录并重定向到用户个人资料页面

Django-登录并重定向到用户个人资料页面

这是不可能的使用动态参数(如登录用户的主键)在LOGIN_REDIRECT_URL你的settings.py

在Django 1.11+中,您可以继承LoginView和重写,get_success_url以便它动态重定向

from django.contrib.auth.views import LoginView

class MyLoginView():

    def get_success_url(self):
        url = self.get_redirect_url()
        return url or reverse('account_landing', kwargs={'pk': self.request.user.pk, 'name': self.request.user.username})

注意,该url = self.get_redirect_url()行是使用querystring处理重定向上一页所必需的,例如?next=/foo/bar

然后在URL配置中使用您的自定义登录视图。

url(r'^login/$', MyLoginView.as_view(), name='login'),

对于早期版本的Django,无法以相同的方式自定义基于函数登录视图。

一种解决方法是创建一个重定向到您的登录页面的视图:

from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect

@login_required
def account_redirect(request):
    return redirect('account-landing', pk=request.user.pk, name=request.user.username)

为此视图创建一个URL模式:

urlpatterns = [
    url(r'^account/$', account_redirect, name='account-redirect'),
]

然后将该视图用作LOGIN_REDIRECT_URL

LOGIN_REDIRECT_URL = 'account-redirect'
Go 2022/1/1 18:41:00 有360人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶