我正在建立一个包含多种语言的网站。
因此,我需要在我的所有模型类中设置所有属性的详细名称(使用国际化助手)。不幸的是,我找不到更改用户属性的详细名称的方法...
覆盖每一个表单并不是一个很好的方法,对吧?
谢谢你的帮助!
罗恩
这取决于你需要这个。通常,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)
由于这是搜索 django 详细名称时在 google 上的第一个答案,我想我会更正 2012 年的 Chris Pratt 的回答,使其适用于 django 2.0
如果您只想在管理面板中更新模型名称,您可以简单地将 Meta 类添加到您的用户模型中。请注意与克里斯的回答略有不同。
class Meta:
verbose_name = 'My Custom User'