我正在使用django-rest-auth和allauth在我的django应用程序中登录和注册 . 我没有为登录或注册编写任何额外的单行代码 . 使用emailid和提供的密码注册成功 .
我不使用用户名进行身份验证,而是使用电子邮件
在我可浏览的注册api中,我得到以下内容:
除了这些字段,我想要first_name和last_name(默认的auth_user表有这些列),这样我新创建的auth_user也会设置这些字段以及电子邮件和散列密码 .
我怎样才能做到这一点?这个可浏览的表单本身并不那么重要,但能够存储first_name和last_name是我主要需要的 .
3 回答
确保
settings.py
文件中有ACCOUNT_USERNAME_REQUIRED = False
.对于
first_name
和last_name
,您需要编写自定义RegisterSerializer
(https://github.com/Tivix/django-rest-auth/blob/master/rest_auth/registration/serializers.py#L166)这是
serializers.py
的示例代码settings.py
中确保添加以引用新的Serializer .您也可以在
RegisterSerializer
上覆盖custom_signup
方法,该方法用于此目的 .然后在
urls.py
中使用以下内容或在
settings.py
中设置REGISTER_SERIALIZER
更优雅的解决方案是从RegisterSerializer继承并根据需要进行扩展 .