首页
学习
活动
专区
工具
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在用户注册中保存额外字段的方法。这样,用户在注册时提供的额外字段的值将会保存到自定义的用户模型中的相应字段中。

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

相关·内容

领券