Django.db.utils.IntegrityError: (1048, "Column 'user_id' cannot be null") в DRF

У меня есть приложение, и я использую django.contrib.auth.models.User в качестве модели аутентификации, затем я использую для сериализатора:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = '__all__'
        # fields = ['first_name', 'last_name', 'email', 'password', 'username']

    def validate(self, attrs):
        if 'name' in attrs.keys():
            name = attrs['name']
            name = name.split(' ')
            first_name, last_name = name[0], name[1]
            attrs['first_name'], attrs['last_name'] = first_name, last_name
        attrs['password'] = make_password(attrs['password'])
        return attrs

затем я использую для набора представлений:

class UserViewSet(viewsets.ViewSet):
    permission_classes = (permissions.AllowAny,)
    # authentication_classes = (TokenAuthentication)

    ...
    def create(self, request):
        # return response.Response(data=request.data)
        # user = User.objects.filter(username=request.data['username']).exists()
        # return response.Response(data= user)
        if User.objects.filter(username=request.data['username']).exists():
            serials = UserSerializer(
                data=request.data,
                context={'request': request}
            )
            user = None
            if serials.is_valid():
                user = serials.save()
        else:
            user = UserSerializer(request.data, many=True)

        token, created = Token.objects.get_or_create(user=user)
        return response.Response(
            data={
                'token': token.key,
                'user': UserSerializer(user).data
            }
        )
      ...

После этого я получил эту ошибку:

django.db.utils.IntegrityError: (1048, "Column 'user_id' cannot be null")

Вернуться на верх