Django创建超级用户错误:AttributeError:'ProfileManager'

您好,我正在尝试创建一个超级用户,但是,在添加我自己的 ProfileManager 后,我收到错误:


AttributeError: 'ProfileManager' object has no attribute 'create_superuser'


但我的问题是 BaseUserManager 应该已经有这个方法了吗?我找不到继承该create_superuser方法的原因。


我的经理是:


class ProfileManager(BaseUserManager):

      pass

我的模型是:


class Profile(AbstractUser):

      

      objects = ProfileManager()

感谢您提前提供的所有帮助!


Qyouu
浏览 142回答 2
2回答

慕尼黑的夜晚无繁华

BaseUserManager类没有create_superusernor create_user,这些方法是在UserManager这也记录在自定义身份验证文档中如果你的用户模型定义了与 Django 默认用户相同的 username、email、is_staff、is_active、is_superuser、last_login 和 date_joined 字段,则可以安装 Django 的 UserManager;但是,如果您的用户模型定义了不同的字段,则需要定义一个扩展 BaseUserManager 的自定义管理器,并提供两个附加方法:创建用户创建超级用户因此,您不需要设置对象属性,也不需要覆盖任何内容,因为AbstractUser将对象属性设置为 objects = UserManager()

跃然一笑

不,BaseUserManager没有这个方法,但是UserManager有from django.contrib.auth.models import UserManagerclass ProfileManager(UserManager):    pass
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python