您好,我正在尝试创建一个超级用户,但是,在添加我自己的 ProfileManager 后,我收到错误:AttributeError: 'ProfileManager' object has no attribute 'create_superuser'但我的问题是 BaseUserManager 应该已经有这个方法了吗?我找不到继承该create_superuser方法的原因。我的经理是:class ProfileManager(BaseUserManager): pass我的模型是:class Profile(AbstractUser): objects = ProfileManager()感谢您提前提供的所有帮助!
2 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
BaseUserManager
类没有create_superuser
nor create_user
,这些方法是在UserManager
这也记录在自定义身份验证文档中
如果你的用户模型定义了与 Django 默认用户相同的 username、email、is_staff、is_active、is_superuser、last_login 和 date_joined 字段,则可以安装 Django 的 UserManager;但是,如果您的用户模型定义了不同的字段,则需要定义一个扩展 BaseUserManager 的自定义管理器,并提供两个附加方法:
创建用户
创建超级用户
因此,您不需要设置对象属性,也不需要覆盖任何内容,因为AbstractUser
将对象属性设置为
objects = UserManager()
跃然一笑
TA贡献1826条经验 获得超6个赞
不,BaseUserManager
没有这个方法,但是UserManager
有
from django.contrib.auth.models import UserManager
class ProfileManager(UserManager):
pass
添加回答
举报
0/150
提交
取消