用户模型中的 DJANGO AllAuth 必填字段

DJANGO AllAuth Required Fields in User Model

我使用的是 djoser,但 运行 遇到了自定义电子邮件的障碍,并被转介到 allauth + rest-auth。

我正在尝试将我的端点和 运行 转换为模型问题。

首先,我使用 djoser 的用户模型放弃了用户名以支持电子邮件,我将名字和姓氏移至一对一的配置文件 table 并将邮政编码添加到用户模型——有效我的用户是带有密码和邮政编码的电子邮件。

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

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

干杯, -E

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

每当你 customizing the django user you'll want to extend AbstractBaseUser which includes first_name, last_name, username, email, date_joined, is_staff, and is_active. You don't have to use them but they will be there. You can specify which field will be used for the username

一旦您使用 AbstractBaseUser 作为您的用户 class 的基础,您的问题就会消失,您可以从他们的 [=] 中指定您需要的 allauth 21=]。

另见 allauth doc on custom user models