【发布时间】:2012-06-12 14:05:48
【问题描述】:
我正在构建一个包含多种语言的网站。
因此,我需要在所有模型类中设置所有属性的详细名称(使用国际化助手)。不幸的是,我找不到更改用户属性的详细名称的方法...
覆盖每一个表单并不是一个很好的方法,对吧?
感谢您的帮助!
罗恩
【问题讨论】:
我正在构建一个包含多种语言的网站。
因此,我需要在所有模型类中设置所有属性的详细名称(使用国际化助手)。不幸的是,我找不到更改用户属性的详细名称的方法...
覆盖每一个表单并不是一个很好的方法,对吧?
感谢您的帮助!
罗恩
【问题讨论】:
由于这是在 google 上搜索 django 详细名称时的第一个答案,我想我会更正 2012 年 Chris Pratt 的回答,使其适用于 django 2.0
如果您只想在管理面板中更新模型名称,您可以简单地将 Meta 类添加到您的用户模型中。请注意与克里斯的回答略有不同。
class Meta:
verbose_name = 'My Custom User'
【讨论】:
这取决于你需要这个。通常,verbose_name 仅在管理员上下文中使用。如果这是您需要担心的,那么您可以创建一个代理模型,然后让您的用户管理员使用它:
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
class CustomUser(User):
class Meta:
proxy = True
app_label = 'auth'
verbose_name = _('My Custom User')
然后,在 admin.py 中:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from .models import CustomUser
admin.site.unregister(User)
admin.site.register(CustomUser, UserAdmin)
【讨论】: