当前位置: 首页 > 面试题库 >

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

澹台建华
2023-03-14
问题内容

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

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

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


问题答案:

一种更简单的方法依赖于页面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’。



 类似资料:
  • 我将OpenId4Java与JSF应用程序一起使用,我在web.xml中添加了安全约束,如下所示。 现在,当应用程序启动并且用户希望访问 http://www.somehost:8080/myapp/core/abc.xhtml 在web.xml的帮助下,我可以向用户显示一个登录页面,现在这里我用openid登录,就像Google、Yahoo现在我的问题是,我如何告诉openid我的返回url是

  • 问题内容: 我想设置我的网站,以便如果用户点击该页面并且他们已经登录,它将把他们重定向到主页。如果未登录,它将正常显示。由于登录代码内置在Django中,我该怎么做? 问题答案: 我假设你当前正在使用内置的登录视图, 或你网址中的类似内容。 你可以编写包含默认视图的登录视图。它将检查用户是否已经登录,如果已经登录则重定向,否则使用默认视图。 就像是: 当然可以相应地更改你的网址:

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano

  • 问题内容: 我有一个网站,有一个用户系统。我想将wordpress的用户系统集成到该网站的系统中,但是我仍然想使用该网站的注册/登录页面。我不希望任何人都能使用Wordpress的登录或注册表格进行登录或注册。相反,当他们尝试访问Wordpress中的登录/注册页面时,我希望这些页面将它们重定向到我自己的登录/注册页面。 有什么办法吗?我已经尝试过Google,但是我所能找到的只是在用户登录或注册

  • 我想在登录后将用户重定向到同一页面。该场景是,如果用户未登录,将重定向到登录页面。在登录页面上,当他单击一个可用的用户选项时,我想存储用户id,然后将他重定向回他来自的同一页面。为此,我使用以下代码: 在应用程序中提供帮助。rb: 在SigninController中: 在登录/索引页中:

  • 问题内容: 我正在尝试建立一个简单的网站,其登录功能与SO上的登录功能非常相似。用户应该能够以匿名用户的身份浏览网站,并且每个页面上都会有一个登录链接。当单击登录链接时,用户将被带到登录表单。成功登录后,应将用户带回到他首先单击登录链接的页面。我猜想我必须以某种方式将当前页面的url传递给处理登录表单的视图,但是我真的无法使其正常工作。 编辑:我想通了。我通过将当前页面作为GET参数传递来链接到登