"Не удается запросить "admin": должен быть экземпляр "User""

Я работаю над проектом Django REST Framework, где у меня есть модель корзины, и я хочу разрешить авторизованным пользователям добавлять товары в свою корзину с помощью запроса POST. Однако я продолжаю получать следующую ошибку:

ValueError: Cannot query "admin": Must be "User" instance.

Вот соответствующая часть моей модели корзины:

class Cart(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='carts')
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    quantity = models.PositiveIntegerField(default=1)
    added_at = models.DateTimeField(default=timezone.now)

А вот изображение корзины, в котором возникает проблема:

class CartView(APIView):
    permission_classes = [IsAuthenticated]

    def post(self, request):
        user = User.objects.get(id=request.user.id)  # Force correct User instance
        album_id = request.data.get('album_id')

        if not album_id:
            return Response({"error": "Album ID is required"}, status=400)

        try:
            album = Album.objects.get(id=album_id)
        except Album.DoesNotExist:
            return Response({"error": "Album does not exist"}, status=404)

        cart_item, created = Cart.objects.get_or_create(user=user, album=album)

        if not created:
            cart_item.quantity += 1
            cart_item.save()

        return Response({"message": f"Added {album.title} to cart", "quantity": cart_item.quantity}, status=201)

В Postman я добавляю заголовок авторизации с действительным токеном:
Authorization: Token fcbb7230bb0595694200e3e6effbe67d1c43fb7c

  • Убедитесь, что request.user должным образом аутентифицирован.
  • Проверено, что токен принадлежит нужному пользователю в панели администратора.
  • Вошел в систему type(request.user) и обнаружил, что это не всегда экземпляр User.
  • Явно извлек экземпляр User, используя User.objects.get(id=request.user.id).
Вернуться на верх