python - Django admin - 用户名字段显示我的电子邮件而不是用户名
问题描述
我有一个带有用户名和电子邮件字段的用户模式。我使用postgresql。
对于管理面板中的每个用户,我的电子邮件都会显示在应用程序生产版本 (AWS) 的用户名字段中。本地情况并非如此。在数据库中,用户名显示正确。
在 admin.py 我只是有:
admin.site.register(User)
有谁知道为什么这是生产而不是本地的情况?以及如何解决这个问题。
解决方案:
当我从隐身选项卡检查管理员时,一切正常。Chrome 似乎出于某种原因在“用户名”字段中设置了我的电子邮件地址。
解决方案
我认为您已经覆盖了模型USERNAME_FIELD
中的属性User
。将此字段更改为USERNAME_FIELD = 'random_field'
将影响您在类中的字符串方法,User
因为在此方法对象中显示USERNAME_FIELD
.
您可以覆盖您的__str__
方法,因为在管理页面中,对象的默认返回值是此方法的返回值。因此,您可以将此方法添加到您的模型中,如下所示:
class User(SomeParentModel):
... some fields ...
def __str__(self):
return self.username # Or any other fields that you want
推荐阅读
- firebase - 颤动底部导航器手势检测器不起作用
- python - 网络抓取的 Python while 循环错误,相同的数据出现 5 次
- jquery - 无法使用 jQuery validate 验证我的表单
- python - Python:从字典中提取多个值
- reactjs - 学生名单点击并重定向到页面反应
- html - 如何在 html iframe 中使用 heroku 应用程序?
- c++ - 在系统上安装 pmdk 库后,程序给出错误“致命错误:libpmemkv.hpp:没有这样的文件或目录”
- php - PHP/Xpath - if/else 检查外部站点 div 内容
- python - 如何使用@client.event on_message discord-py-slash (discord.py) 添加斜杠命令
- selenium - 如何使用 selenium 和 GeckoDriver 显示搜索结果?