我按照开发文档中的描述扩展了 django 用户模型。我不想保留大部分原始用户模型功能,所以我扩展了 AbstractUser 类。我在settings.py中定义:
AUTH_USER_MODEL = 'myapp.CustomUser'
我的用户类:
class CustomUser(AbstractUser):
custom_field = models.ForeignKey('OtherModel')
objects = UserManager()
一切似乎都很好,但是当我尝试让它由管理站点管理时:
admin.site.register(CustomUser, UserAdmin)
我在管理自定义用户创建页面上收到此错误(在验证密码确认表单后):
AttributeError: Manager isn't available; User has been swapped for 'myapp.CustomUser'
关键是我需要这个由管理站点管理的模型,以便拥有与原始用户模型相同的创建过程(密码验证的两步过程)。