首页 > 解决方案 > 如何在 Django 中将用户显示名称更改为他们的名字

问题描述

我正在使用 Django 内置的用户身份验证系统,来自from django.contrib.auth.models import User. 而且我意识到在管理页面中它总是显示用户的用户名。是否可以更改该def __str__ (self):功能的方法以显示自定义的方法,例如这样。

def __str__ (self):
    return f"{self.first_name}"

标签: pythondjangodjango-users

解决方案


对于任何此类更改,您应该参考呈现它的模板。在这里,它是 Django Admin 的base.html模板。

正如您在文件中的这一行中看到的那样,它按顺序搜索两者short_nameuser_name显示第一个可用的。

{% block welcome-msg %}
    {% translate 'Welcome,' %}
    <strong>
        {% firstof user.get_short_name user.get_username %}
    </strong>.
{% endblock %}

get_short_name返回用户的名字。因此,您的用户没有定义他们的名字,因此它显示了他们的用户名。

注意:请检查您的 Django 版本的文档,因为这是在 1.5 及更高版本之后实施的,并且仅对更高版本有效。


推荐阅读