【问题标题】:Some user attributes not showing up in django admin某些用户属性未显示在 django admin 中
【发布时间】:2011-02-09 13:12:08
【问题描述】:

在我的自定义身份验证后端中,我从 LDAP 响应中提取用户名、电子邮件、名字和姓氏,如果用户还不存在,则尝试将它们粘贴到新生成的用户对象中:

user = User(username=username, email=result[0][1].get('mail')[0], first_name=result[0][1].get('givenName')[0], last_name=result[0][1].get('sn')[0])
user.save()

我尝试了另一种变体:

user = User.objects.create_user(username, result[0][1].get('mail')[0])
user.first_name = result[0][1].get('givenName')[0]
user.last_name = result[0][1].get('sn')[0]
user.save()

虽然在用户首次成功进行身份验证尝试后,用户名和电子邮件显示在管理员中,但我无法显示名字和姓氏。记录来自 LDAP 响应的值表明这些值存在。

知道这里出了什么问题吗?

【问题讨论】:

  • first_namelast_name 的值是否在数据库中正确显示?换句话说,您是在问如何让管理界面显示它们,还是遇到了它们甚至无法访问数据库的情况?
  • 很抱歉一直不清楚这一点。我刚查了一下,他们甚至没有出现在数据库中......
  • 在这种情况下,我建议查看result[0][1].get('givenName')[0]result[0][1].get('sn')[0] 究竟返回了什么,要么使用打印语句,要么放入调试器。我怀疑您在那里没有得到任何东西,但是在不了解您的设置的情况下,我无法说出原因。 (如果您想尝试调试器,pdb 非常好;在此代码附近的某处,您可以插入带有 import pdb; pdb.set_trace() 的行以放入其中;Google pdb 了解如何使用它的一些基础知识。)
  • 正如我在原始消息中所说,来自 LDAP 响应的值确实通过了。所以我怀疑我自己犯了一些愚蠢的错误(很可能)或一个错误(以前几乎没有人偶然发现过这个......)

标签: django django-admin django-authentication


【解决方案1】:

好吧,这确实是我自己的愚蠢:不仅应该重新启动前端网络服务器,还应该重新启动 uWSGI!我可以补充一下,这些是我使用 uWSGI 的初步步骤......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2022-01-05
    • 2021-01-23
    • 2016-06-02
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多