python - 如何在 Django 中将用户显示名称更改为他们的名字
问题描述
我正在使用 Django 内置的用户身份验证系统,来自from django.contrib.auth.models import User
. 而且我意识到在管理页面中它总是显示用户的用户名。是否可以更改该def __str__ (self):
功能的方法以显示自定义的方法,例如这样。
def __str__ (self):
return f"{self.first_name}"
解决方案
对于任何此类更改,您应该参考呈现它的模板。在这里,它是 Django Admin 的base.html
模板。
正如您在文件中的这一行中看到的那样,它按顺序搜索两者short_name
并user_name
显示第一个可用的。
{% block welcome-msg %}
{% translate 'Welcome,' %}
<strong>
{% firstof user.get_short_name user.get_username %}
</strong>.
{% endblock %}
并get_short_name
返回用户的名字。因此,您的用户没有定义他们的名字,因此它显示了他们的用户名。
注意:请检查您的 Django 版本的文档,因为这是在 1.5 及更高版本之后实施的,并且仅对更高版本有效。
推荐阅读
- python-3.x - 如何使用 Amazon S3 下载 Landsat 8 图像
- ruby-on-rails - 有没有办法通过特定值将用户哈希过滤到另一个数字?
- android - DatePickerDialog 显示前一年的一天
- ios - 如何在swift中找到ios中二维码的内容类型?
- php - 发送电子邮件时从名称设置的 ms graph php sdk
- javascript - 如果该属性尚未声明,我如何创建指向该属性的链接?(在课堂上)
- asp.net - MVC4 - 提交到主视图期间的部分视图列表模型绑定
- qr-code - 如何在 Zebra 编程语言 (ZPL) 中连接 GS1 数据矩阵 (BXN) 的多个字段
- swift - CLLocationManager.requestLocation 调用其代表需要多长时间
- php - Foreach 内部 foreach 将值添加到数组