Django自定义身份验证模型

时间:2020-09-23 14:00:24

标签: python django django-registration

不知道如何命名此问题,让我详细说明。 我有一个非常老的django项目,自django 1.5以来一直在迁移它。 它始终具有类Member,扩展了User,并且实际上已用作该应用程序的身份验证模型。 AUTH_USER_MODEL从未更改,但是SOCIAL_AUTH_USER_MODEL被设置为自定义身份验证模型(它可以那样工作)。 目前,我正在迁移到django 3.x,并且在django-registration中遇到了麻烦-它曾经与Member设置为模型一起工作,但是现在它针对AUTH_USER_MODEL进行了检查。最重要的是,我想使其成为“正确”的方式,并设置适当的自定义模型,并确保在我深入研究它之前正确地做它,因为我希望它不太容易。

当我仅将AUTH_USER_MODEL设置为自定义模型时,就会收到错误消息members.Member.user_ptr: (fields.E301) Field defines a relation with the model 'auth.User', which has been swapped out. 当我使Member而不是AbstractUser扩展User时,我缺少ID和字段,因为django然后期望所有数据都在单个表中(而不是具有2个一对一关系表) 。 我可以通过某种方式手动将数据合并到单个表中,但是我什至不确定这是否正确。

什么是使该项目在未来摆脱困境的最佳方法?如何迁移/进行?我愿意弄脏我的手:-)

1 个答案:

答案 0 :(得分:0)

没有示例代码就很难提供帮助。否则

在创建数据库表后更改AUTH_USER_MODEL 因为它影响外键并且 多对多关系

这些文章可能会对您有所帮助。

Ruddra.com

Tobias McNulty