Django Rest Framework имеет статус 500, но все равно создает экземпляр (ограничение not-null)

У меня очень странная ошибка, которую я не могу отладить уже несколько часов. Я продолжаю получать ошибку на мой пост запрос создания экземпляра понравившегося товара в базе данных.

django.db.utils.IntegrityError: null value in column "product_id" of relation "ecommerce_like" violates not-null constraint
DETAIL:  Failing row contains (31, null, null).

Странно то, что он создает этот экземпляр и прекрасно работает, но выдает статус.500, и я понятия не имею, как его удалить.

Итак, у меня есть такая модель:

class Like(models.Model):
    product = models.ForeignKey('ProductInStore', on_delete=models.PROTECT)
    user = models.ForeignKey('users.CustomUser', on_delete=models.PROTECT)

    class Meta:
        unique_together = ('product', 'user',)

class ProductInStore(models.Model):
    product = models.ForeignKey('Product', on_delete=models.CASCADE)


class Product(models.Model):
    name = models.CharField(max_length=200)

А код для создания экземпляра Like выглядит так:

class LikeProductApi(generics.CreateAPIView):
    queryset = Like.objects.all()
    serializer_class = LikeSerializer

    def create(self, request, *args, **kwargs):
        product_id = self.kwargs['pk']
        product = ProductInStore.objects.get(id=product_id)

        if Like.objects.filter(user=self.request.user, product=product).exists():
            raise ValidationError("This user already likes this product")
        else:
            Like.objects.create(user=self.request.user, product_id=product_id)
            return super().create(request, *args, **kwargs)


class LikeSerializer(serializers.ModelSerializer):
    user = serializers.PrimaryKeyRelatedField(read_only=True, default=serializers.CurrentUserDefault())
    product = serializers.PrimaryKeyRelatedField(read_only=True)

    class Meta:
        model = Like
        fields = ('user', 'product',)

У вас есть идеи, что не так?

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