Django自定义用户模型错误:Manager isn't available; User has been swapped”?


我扩展了Django用户模型,如dev文档中所描述的那样。我不想保留大多数原始的用户模型特性,所以我扩展了抽象用户类。我在setings.py中定义了:

AUTH_USER_MODEL = 'user.User'

我的用户类:

class User(AbstractUser):
  custom_field = models.ForeignKey('OtherModel')
  objects = UserManager()

一切看起来都很好,但是当我试图让它由管理站点管理时:

admin.site.register(User, UserAdmin)

我在ADMIN CustomUser Creation页面(在验证密码确认表单后)获得此错误:

AttributeError: Manager isn't available; User has been swapped for 'user.User'

关键是,我需要管理站点管理这个模型,以便与原始用户模型具有相同的创建过程(两个步骤进程,密码验证)。

分析:因为我们定义抽象模型类,并且在settings中设置了

# django认证系统使用的模型类
AUTH_USER_MODEL='user.User'

解决方法(将views中导入模块的方式修改)

from django.contrib.auth.models import User
然后将其替换为:

from user.models import MyUser as User


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM