django остальные API не создает пользователя - PullRequest
0 голосов
/ 08 апреля 2020

Halo. Я работаю над django кодом API rest_framework для регистрации пользователей, но когда я тестирую код с почтальоном, они не регистрируются и не возвращают никаких ошибок, надеясь, что кто-нибудь сможет помочь. ниже приведены мои модели, сериализаторы и коды представлений .....

модели

class CustomUser(AbstractUser):
    username = None
    email = models.EmailField(_('email address'), unique=True)
    password = models.CharField(max_length=100)
    created = models.DateField(auto_now=True)
    timestamp = models.DateTimeField(auto_now=True)
    role = models.CharField(max_length=5)
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    def __str__(self):
        return self.email

     class Meta:
        ordering = ('email',)    

    objects = CustomManager()

просмотры

@api_view(['POST', ])
def registration(request):
    if request.method =='POST':
        serializer = RegisterUserSerializer(data=request.data)
        data = {}
        if serializer.is_valid():
            user = serializer.save()
            data['response'] = 'registration successful'
            data['email'] = user.email
        else:
            data = serializer.errors
        return Response(data)

сериализаторы

class RegisterUserSerializer(serializers.HyperlinkedModelSerializer):
    confirm_password = serializers.CharField(style= {'input_type': 'password'},  
        write_only=True)
    class Meta:
        model = CustomUser
        fields = ['id', 'email', 'password', 'confirm_password']
        extra_kwargs = {'password': {'write_only': True, 'required': True}}

        def save(self):
            user = CustomUser(
                email = self.validated_data['email'],
            )
            password = self.validated_data['password']
            confirm_password = self.validated_data['confirm_password']
            if password != confirm_password:
                raise serializers.ValidationError({'password: Password didn\' match'})
            user.set_password(password)
            user.save()
            return user
...