Django - 如何设置/更改Djangos用户模型属性的详细名称?

时间:2012-06-08 13:48:15

标签: django model verbose

我正在建立一个包含多种语言的网站。

因此,我需要在所有模型类中设置所有属性的详细名称(使用internationalizaton-helper)。不幸的是我找不到改变用户属性的详细名称的方法......

覆盖每一个表单并不是一个很好的方法,对吗?

感谢您的帮助!

罗恩

2 个答案:

答案 0 :(得分:4)

这取决于你需要什么。通常,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)

答案 1 :(得分:0)

由于这是谷歌在搜索django详细名称时的第一个答案,我认为我认为克里斯普拉特的答案从2012年开始是正确的django 2.0

如果您只想在“管理”面板中更新模型名称,只需将Meta类添加到用户模型即可。请注意克里斯'回答。

class Meta:
    verbose_name = 'My Custom User'