0

我正在使用 djoser,但在自定义电子邮件时遇到了障碍,并被称为 allauth + rest-auth。

我正在尝试转换我的端点并遇到模型问题。

首先,我的 djoser 用户模型删除了用户名,转而使用电子邮件,我将名字和姓氏移动到一对一的个人资料表中,并将邮政编码添加到用户模型中——实际上我的用户是带有密码和邮政编码的电子邮件。

allauth 抛出了一个用户名不存在的错误,在四处搜索后,我发现了一个 hacky 的“解决方案”,将一个空的用户名添加回我的用户模型(并忽略它)。当我将登录端点从更改为时/auth/token/login//rest-auth/login/我遇到了另一个错误django.core.exceptions.ImproperlyConfigured: Field name 'first_name' is not valid for model 'User'.,我真的很想避免将所有配置文件字段添加到我的用户模型中并使它们可以为空——而且我真的不想编写自己的身份验证后端。

有没有人有这种类型的模型覆盖的经验?

干杯,-E

4

1 回答 1

0

除非您打算完全避免使用 Django 的用户基础设施,否则我不会费心尝试删除默认字段。

每当您自定义 django 用户时,您都需要扩展AbstractBaseUser,其中包括first_namelast_nameusernameemaildate_joinedis_staffis_active. 您不必使用它们,但它们会在那里。您可以指定哪个字段将用于用户名

一旦您将AbstractBaseUser其用作用户类的基础,您的问题就会消失,您可以allauth从他们的配置文档中指定您需要的内容。

另请参阅allauth有关自定义用户模型的文档

于 2019-09-08T22:40:18.493 回答