Ошибка получения значения при попытке вызвать API с проверенным токеном пользователя - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь получить последние заказы всех моих клиентов в моем приложении. Я вхожу как пользователь, получаю действительный токен и пробую API. Я получаю эту ошибку каждый раз, когда пытаюсь вызвать свой API: «ValueError: Невозможно запросить« jake thedogg »: должен быть экземпляром« CustomerDetails »». Я пытаюсь получить все экземпляры заказов от этого пользователя.

def customer_get_latest_order(request):
    customer = get_user(request)
    if not customer:
        return JsonResponse({'invalid token'})
    order = OrderSerializer(Order.objects.filter(customer=customer).order_by("-id"),
        many=True,
        context={"request": request}
    ).data
    return JsonResponse({"order": order})

Модель:

class OrderDetail(models.Model):
    order = models.ForeignKey(
        Order, related_name='order_details', on_delete=models.CASCADE)
    product_size = models.ForeignKey(ProductSize, on_delete=models.CASCADE)
    quantity = models.IntegerField()
    sub_total = models.FloatField()

        def __str__(self):
            return str(self.id)

Сериализаторы:

class OrderSerializer(serializers.ModelSerializer):
    customer = CustomerOrderSerializer()
    driver = OrderDriverSerializer()
    dispensary = OrderDispensarySerializer()
    order_details = OrderDetailSerializer(many=True)
    status = serializers.ReadOnlyField(source="get_status_display")

    class Meta:
        model = Order
        fields = ("id", "customer", "dispensary", 'delivery_signature', 'order_rated', 'quantity',
                  "driver", "order_details", "total", "status", "address", "created_at")

Модель заказа:

class Order(models.Model):
    a = 1
    b = 2
    c = 3
    d = 4

    e = 5

    STATUS_CHOICES = (
        (a, "ah"),
        (b, "bb"),
        (c, "cc"),
        (d, "dd"),

        (CANCELED, "Canceled/Refunded")
    )
    address = models.CharField(max_length=500)
    created_at = models.DateTimeField(default=timezone.now)
    customer = models.ForeignKey(CustomerDetails, on_delete=models.CASCADE)
    delivery_signature = models.ImageField(
        upload_to='delivery_selfie/', blank=True, default='')
    delivered_at = models.DateTimeField(default=timezone.now)
    dispensary = models.ForeignKey(Dispensary, on_delete=models.CASCADE)
    driver = models.ForeignKey(
        Driver, blank=True, null=True, on_delete=models.CASCADE)
    picked_at = models.DateTimeField(default=timezone.now)
    order_rated = models.BooleanField(default=False)
    status = models.IntegerField(choices=STATUS_CHOICES)
    total = models.FloatField()

    def __str__(self):

        return str(self.id)

Каждый раз, когда я пытаюсь вызвать API, я получаю эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...