首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过dj_rest_auth在用户注册中保存额外的字段

,可以通过自定义用户模型和序列化器来实现。

首先,需要创建一个自定义的用户模型,继承自AbstractUser,并添加额外的字段。例如,我们可以创建一个名为CustomUser的模型,其中包含一个名为extra_field的额外字段:

代码语言:txt
复制
from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    extra_field = models.CharField(max_length=100)

接下来,需要创建一个自定义的用户序列化器,用于在注册时保存额外字段的值。可以使用dj_rest_auth提供的RegisterSerializer作为基类,并添加额外字段的序列化器。例如,我们可以创建一个名为CustomRegisterSerializer的序列化器:

代码语言:txt
复制
from dj_rest_auth.registration.serializers import RegisterSerializer
from rest_framework import serializers

class CustomRegisterSerializer(RegisterSerializer):
    extra_field = serializers.CharField()

    def custom_signup(self, request, user):
        user.extra_field = self.validated_data.get('extra_field', '')
        user.save()

然后,在settings.py文件中配置dj_rest_auth使用自定义的用户模型和序列化器:

代码语言:txt
复制
REST_AUTH_REGISTER_SERIALIZERS = {
    'REGISTER_SERIALIZER': 'path.to.CustomRegisterSerializer',
}

AUTH_USER_MODEL = 'your_app.CustomUser'

最后,可以使用dj_rest_auth提供的注册API进行用户注册,并在请求中包含额外字段的值。例如,使用POST请求访问/rest-auth/registration/接口,请求体中包含以下字段:

代码语言:txt
复制
{
  "username": "example",
  "password1": "password123",
  "password2": "password123",
  "extra_field": "extra value"
}

以上就是通过dj_rest_auth在用户注册中保存额外字段的方法。这样,用户在注册时提供的额外字段的值将会保存到自定义的用户模型中的相应字段中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 使用NodeJs(Express)搞定用户注册、登录、授权

    首先做一下声明,本篇博客来源于BiliBili上全栈之巅主播Johnny的视频[1小时搞定NodeJs(Express)的用户注册、登录和授权(https://www.bilibili.com/video/av49391383),对其进行了整理。自己跟着视频做,感觉收获不少。 最近在学些NodeJs和Express框架开发后台接口,Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。看到B站上全栈之巅-Node.js+Vue.js全栈开发深度爱好者和实践者,感觉Johnny博主的系列视频讲解得不错,其中看到一个视频是1小时搞定NodeJs(Express)的用户注册、登录和授权,介绍了在Express中怎么做用户登录和注册,以及jsonwebtoken的验证,需要在系统中安装MongoDB数据库;于是在自己的Windows10系统下使用VSCode跟着做,前提是要安装好NodeJs和Express开发环境,以及在Windows系统中配置好MongoDB数据库,关于在Windows下安装MongoDB可以参考菜鸟教程中的Windows 平台安装 MongoDB和windows环境下启动mongodb服务。

    01
    领券