【问题标题】:Django - How can I set/change the verbose name of Djangos User-Model attributes?Django - 如何设置/更改 Django 用户模型属性的详细名称?
【发布时间】:2012-06-12 14:05:48
【问题描述】:

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

因此,我需要在所有模型类中设置所有属性的详细名称(使用国际化助手)。不幸的是,我找不到更改用户属性的详细名称的方法...

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

感谢您的帮助!

罗恩

【问题讨论】:

    标签: django model verbose


    【解决方案1】:

    由于这是在 google 上搜索 django 详细名称时的第一个答案,我想我会更正 2012 年 Chris Pratt 的回答,使其适用于 django 2.0

    如果您只想在管理面板中更新模型名称,您可以简单地将 Meta 类添加到您的用户模型中。请注意与克里斯的回答略有不同。

    class Meta:
        verbose_name = 'My Custom User'
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-06-12
        • 2011-08-23
        • 1970-01-01
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 2010-10-29
        相关资源
        最近更新 更多