Django:自定义用户模型字段没有出现在Django管理员中

Don*_*ing 5 python authentication django django-models

我正在尝试在django.contrib.auth.modelsUser模型中添加一些额外的字段.我将在整个项目中使用这个自定义用户模型.我曾经AbstractUser添加name和contact字段.

class User(AbstractUser):
    name = models.CharField(_('Name of User'), blank=True, max_length=255)
    contact = models.CharField(max_length=20, blank=True)
    def __str__(self):
        return self.username
Run Code Online (Sandbox Code Playgroud)

在我settings.py,我添加到apps.authentication,这是我的应用程序:

INSTALLED_APPS = [ 'apps.authentication', ...]
Run Code Online (Sandbox Code Playgroud)

我还指定了我AUTH_USER_MODEL:

AUTH_USER_MODEL = 'authentication.User'
Run Code Online (Sandbox Code Playgroud)

然后我运行了迁移并且它工作了(我检查了我的本地数据库;制作了新表).但是,当我使用Django管理员访问它时,无法找到name和contact字段.如何显示字段?

在此输入图像描述

nev*_*ner 8

您可以通过向文件添加以下内容来UserAdmin使用自定义字段集附加默认类admin.py:

from django.contrib.auth.admin import UserAdmin

UserAdmin.fieldsets += ('Custom fields set', {'fields': ('name', 'contact')}),
Run Code Online (Sandbox Code Playgroud)

  • @DonovanKeating 它是翻译工具,它使以下代码中的字符串“个人信息”`_('Personal info')` 多语言。你需要像这样导入它:`from django.utils.translation import ugettext_lazy as _`。`_` 只是常用的同义词。在此处查看文档的相关部分:https://docs.djangoproject.com/en/2.0/topics/i18n/translation/ 了解更多详细信息。 (2认同)