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

时间:2019-08-25 20:07:09

标签: django-models django-rest-framework django-allauth django-rest-auth

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

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

首先,我的使用djoser的用户模型放弃了用户名,而使用电子邮件,然后将姓氏和名字移到了一对一的配置文件表中,并在该用户模型中添加了邮政编码-实际上,我的用户是带有密码的电子邮件和邮政编码。

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

有人对这种模型覆盖有经验吗?

干杯, -E

1 个答案:

答案 0 :(得分:0)

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

无论您何时customizing the django user,都需要扩展AbstractBaseUser,其中包括first_namelast_nameusernameemail,{ {1}},date_joinedis_staff。您不必使用它们,但它们会在那里。 You can specify which field will be used for the username

一旦使用is_active作为用户类的基础,这里的问题就会消失,您可以从AbstractBaseUser的{​​{3}}中指定所需的内容。

另请参阅configuration docs