How to fix "Key (username)=() already exists." error

Viewed 511

I want to create a user with type 'learner'using mobile nummber,when i am trying to do this there is an error,

django.db.utils.IntegrityError: duplicate key value violates unique constraint "user_user_username_key"
DETAIL:  Key (username)=() already exists.

views.py

class Register(APIView):
    def get_permissions(self):
        return (AllowAny(),)


    def post(self, request, *args, **kwargs):
        mobile = request.data.get('mobile')
        if mobile:
            data = {'mobile': mobile}
            serializer = RegisterSerializer(data=data)
            if serializer.is_valid(raise_exception = True):
                serializer.save()
                return Response('sucess')
        else:
            return Response('error')

serializers.py

class RegisterSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('mobile',)

        def create(self, validated_data):
            user_data = validated_data.pop('user')
            user_data['user_type'] = 'learner'
            user_serializer = UserSerializer(data=user_data)
            user_serializer.is_valid(raise_exception=True)
            user = user_serializer.save()
            user.groups.add(validated_data['group'])
            user.save()
            return user

            instance = self.Meta.model(**validated_data)
            instance.user = user
            instance.save()

            return instance
0 Answers
Related