【问题标题】:How to use 'user.username' in the settings.py如何在 settings.py 中使用“user.username”
【发布时间】:2011-07-01 18:23:58
【问题描述】:

成功登录后,我的 URL 转发出现问题。

“LOGIN_REDIRECT_URL”的 django 默认值为“/accounts/profile/”。在我的情况下,它应该转发到 '/user/{{ user.username }}/'

我在我的设置文件中覆盖它,但遇到了语法问题。代码如下:

LOGIN_REDIRECT_URL = "/user/%s/" % user.username

当我在登录表单中使用以下行时,它可以工作,但前提是首先重新加载页面。有点奇怪。

<input type="hidden" name="user" value="/user/{{ user.username }}/" />

那么我必须对我的 settings.py 进行哪些更改才能在重定向时加载用户名?

谢谢。

【问题讨论】:

  • 如果只能从请求上下文中获取当前用户

标签: django


【解决方案1】:

当然存在语法问题,您在 settings.py 中引用了一个不存在的变量 user。它可能会帮助您通过 Python 教程来了解 Python 的作用域规则。

无论如何,settings.py 用于静态全局设置。用户名显然因用户而异,因此您不能在其中放置动态设置。

【讨论】:

    【解决方案2】:

    您可能希望创建自定义登录并使用django user authentication 中描述的视图。

    当然,覆盖 /accounts/profile/ 指向的视图并手动设置重定向 url 有一个选项,但它不是一个非常优雅的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2019-11-23
      • 1970-01-01
      相关资源
      最近更新 更多