,可以通过自定义用户模型和序列化器来实现。
首先,需要创建一个自定义的用户模型,继承自AbstractUser
,并添加额外的字段。例如,我们可以创建一个名为CustomUser
的模型,其中包含一个名为extra_field
的额外字段:
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
的序列化器:
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
使用自定义的用户模型和序列化器:
REST_AUTH_REGISTER_SERIALIZERS = {
'REGISTER_SERIALIZER': 'path.to.CustomRegisterSerializer',
}
AUTH_USER_MODEL = 'your_app.CustomUser'
最后,可以使用dj_rest_auth
提供的注册API进行用户注册,并在请求中包含额外字段的值。例如,使用POST请求访问/rest-auth/registration/
接口,请求体中包含以下字段:
{
"username": "example",
"password1": "password123",
"password2": "password123",
"extra_field": "extra value"
}
以上就是通过dj_rest_auth
在用户注册中保存额外字段的方法。这样,用户在注册时提供的额外字段的值将会保存到自定义的用户模型中的相应字段中。
领取专属 10元无门槛券
手把手带您无忧上云