默认情况下,登录后django将用户重定向到帐户/个人资料页面,或者,如果你编辑LOGIN_REDIRECT_URL,则可以将用户重定向到你在settings.py中指定的另一页面。
很棒,但是我希望用户(登录后)被重定向到自定义页面,该页面的链接看起来像这样:mysite.com/username。因此,在这种情况下,默认帐户/配置文件或LOGIN_REDIRECT_URL设置将不起作用,因为两者都是静态的。就我而言,username地址部分针对每个用户而变化。
mysite.com/username
LOGIN_REDIRECT_URL
username
任何想法如何,我可以让它所以当用户登录会去,在如地址有用户的姓名定制的用户页面: mysite.com/username?任何输入都值得赞赏。
一种更简单的方法依赖于页面LOGIN_REDIRECT_URL的重定向。要实现的关键是将用户信息自动包含在请求中。
假设:
LOGIN_REDIRECT_URL = '/profiles/home'
并且你已经配置了urlpattern:
(r'^profiles/home', 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’。
NAME_OF_PROFILE_VIEW