Python 向管理员身份验证注册自定义用户模型

Python 向管理员身份验证注册自定义用户模型,python,django,django-admin,django-authentication,Python,Django,Django Admin,Django Authentication,在Django项目中,我有一个自定义用户模型,它添加了一个额外字段: class User(AbstractUser): company = models.ForeignKey(Company, null=True, blank=True) 这个模型是在我的应用程序中定义的,比如说MyApp.models 如何使新的用户模型显示在“身份验证和授权”下,作为原始的django.contrib.auth模型 在admin.py中使用 from django.contrib.auth.ad

在Django项目中,我有一个自定义用户模型,它添加了一个额外字段:

class User(AbstractUser):

    company = models.ForeignKey(Company, null=True, blank=True)
这个模型是在我的应用程序中定义的,比如说
MyApp.models

如何使新的
用户
模型显示在“身份验证和授权”下,作为原始的
django.contrib.auth
模型

在admin.py中使用

from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

UserAdmin.list_display = ('email', 'first_name', 'last_name', 'is_active', 'date_joined', 'is_staff')

admin.site.register(User, UserAdmin)

这可以解决您的问题,但在迁移应用程序时可能会导致一些错误。另一个黑客是在你的
AdminSite
中定义
get\u app\u list
,我想你正在寻找的是取代django用户模型。要做到这一点,请参阅本文的答案:。我建议采用扩展路线,但这意味着父模型和子模型都必须注册

如果您确实想要一个模型,只需将
AUTH\u USER\u model
设置设置为您的模型。这实际上取代了默认模型

在您的settings.py中:

AUTH_USER_MODEL = "appname.UserModelName"

有关更换用户型号的详细信息,请参阅。

可能需要尝试以下操作:

管理应用程序中应用程序和模型的自定义订购。您还可以重命名、交叉链接或从应用程序列表中排除模型

如何让新的用户模型显示在“身份验证和 授权“

我在使用Django 3.0时也有同样的顾虑,我就是这样解决的:

class CustomUser(AbstractUser):
    
     class Meta:
         db_table = 'auth_user'
         app_label = 'auth'
在设置中:

AUTH_USER_MODEL = "auth.CustomUser"

这就是我正在做的,但是a)如果我使用我的
用户
类,它会出现在我的应用程序中;b) 如果我使用Django auth的类,它不会出现在任何地方(这并不奇怪,因为我不是用它来表示用户的类)?默认情况下,超级用户显示在belog Group中。我有一个超级用户,是的。您在哪里可以实现此目标?不,不幸的是,您是否修复了此问题?
AUTH_USER_MODEL = "auth.CustomUser"