一尘不染

Django-登录后,将用户重定向到他的自定义页面-> mysite.com/username

django

默认情况下,登录后django将用户重定向到帐户/个人资料页面,或者,如果你编辑LOGIN_REDIRECT_URL,则可以将用户重定向到你在settings.py中指定的另一页面。

很棒,但是我希望用户(登录后)被重定向到自定义页面,该页面的链接看起来像这样:mysite.com/username。因此,在这种情况下,默认帐户/配置文件或LOGIN_REDIRECT_URL设置将不起作用,因为两者都是静态的。就我而言,username地址部分针对每个用户而变化。

任何想法如何,我可以让它所以当用户登录会去,在如地址有用户的姓名定制的用户页面: mysite.com/username?任何输入都值得赞赏。


阅读 388

收藏
2020-03-27

共1个答案

一尘不染

一种更简单的方法依赖于页面LOGIN_REDIRECT_URL的重定向。要实现的关键是将用户信息自动包含在请求中。

假设:

LOGIN_REDIRECT_URL = '/profiles/home'

并且你已经配置了urlpattern:

(r'^profiles/home', home),

然后,你只需要为视图编写home():

from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required

@login_required
def home(request):
    return HttpResponseRedirect(
               reverse(NAME_OF_PROFILE_VIEW, 
                       args=[request.user.username]))

NAME_OF_PROFILE_VIEW你正在使用的回调的名称在哪里。使用django-profiles,NAME_OF_PROFILE_VIEW可以是’profiles_profile_detail’。

2020-03-27