Python 如何覆盖Django Rest身份验证注册?

Python 如何覆盖Django Rest身份验证注册?,python,django,Python,Django,我正在使用Django/Rest Auth进行一个小项目,我想知道如何覆盖注册,我想在注册中添加一些其他字段,因为我想在注册期间做一些其他事情 PS:我已经在这里检查了一些问题,但我无法使用它们,因为每个问题都解释了不同的方法,这就是为什么找到了解决方案: from rest_framework import serializers from rest_auth.registration.serializers import RegisterSerializer from django.db i

我正在使用
Django/Rest Auth
进行一个小项目,我想知道如何覆盖注册,我想在注册中添加一些其他字段,因为我想在注册期间做一些其他事情

PS:我已经在这里检查了一些问题,但我无法使用它们,因为每个问题都解释了不同的方法,这就是为什么

找到了解决方案:

from rest_framework import serializers
from rest_auth.registration.serializers import RegisterSerializer
from django.db import transaction
from users.models import CustomUser
from apps.teams.tasks import createUserTenant


from centrix.celery import app

class CustomRegisterSerializer(RegisterSerializer):

    first_name = serializers.CharField(required=True, min_length=3)
    last_name = serializers.CharField(required=False, min_length=3)
    username = serializers.CharField(required=True, min_length=5)
    password1 = serializers.CharField(required=True, min_length=8)

    @transaction.atomic
    def save(self, request):
        # Create A new Coming User
        
        try:
            user = CustomUser()
            user.first_name = self.data.get('first_name')
            user.last_name = self.data.get('last_name')
            user.username = self.data.get('username')
            user.email = self.data.get('email')
            user.set_password(self.data.get('password1'))
            user.save()
            if type(user.id) is int:
                createUserTenant.delay(user.first_name,user.last_name,user.username, user.id, user.username)
            
        except:
            pass
       
        # set the task id (result.id) in celery
        # get the return value by using get of celery
        # return back the object to rest auth registration ( returning an object is important )

        return user