管理面板中未调用 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
使用它自己的save
和update
方法。所以也必须改变这些方法。傻我。
【讨论】:
以上是关于管理面板中未调用 Django 自定义用户管理器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 django 管理面板中完全自定义 sidebar_menu?