管理面板中未调用 Django 自定义用户管理器

Posted

技术标签:

【中文标题】管理面板中未调用 Django 自定义用户管理器【英文标题】:Django Custom User Manager is not called in admin panel 【发布时间】:2021-11-19 22:29:04 【问题描述】:

我正在使用 AbstractBaseUser 和 BaseUserManaer 实现自定义用户模型。

class UserManager(BaseUserManager):
    def create_user(self,username,password=None):


class User(AbstractBaseUser):
    ...

    objects = UserManager()

当我从终端创建新用户时,它按预期工作,并且用户正在使用自定义 UserManager 进行注册。但是在使用管理站点时,用户似乎正在使用其他一些用户管理器,它应该使用自定义用户管理器。

用户/admin.py

User = get_user_model()


class UserAdmin(BaseUserAdmin):
     ...

admin.site.register(User, UserAdmin)

【问题讨论】:

您是否已将AUTH_USER_MODEL = 'users.User' 添加到您的settings.py 文件中?如果不添加它 是的,我已经添加了。它也在使用 get_user_model 实例的外壳中正常工作。问题在于管理站点。 【参考方案1】:

终于解决了。我缺少的是管理站点中的modelform 使用它自己的saveupdate 方法。所以也必须改变这些方法。傻我。

【讨论】:

以上是关于管理面板中未调用 Django 自定义用户管理器的主要内容,如果未能解决你的问题,请参考以下文章

如何为 django 创建自定义管理面板

如何在 django 管理面板中完全自定义 sidebar_menu?

如何在管理面板中第一次登录django员工用户?

`Django 管理`到项目模板中的自定义标题

如何在django管理面板中访问Google Analytics?

管理员中的 Django 自定义用户模型应用程序级别权限管理