Проблемы с шаблоном Django и данными Json

#python #django #django-rest-framework

#python #django #django-rest-framework

Вопрос:

Я получаю Expecting value: line 1 column 1 (char 0) сообщение об ошибке на странице, когда моя корзина пуста, но работает, когда корзина заполнена. Я ожидаю ошибки, но это тоже не помогает. То же самое продолжается и для другого шаблона, если данные пусты. Возможно, он должен сделать что-то, что не возвращается.

 def cartdetails(request):
    if request.session.get('token', None) != None:
        tokenid = request.session.get("token")
        headers = {'Authorization': 'token '   str(tokenid[0])}

        url = 'https://api-ecommerce.datavivservers.in/mobile_api/CartDetails/'
        jsondata = requests.get(url, headers=headers).json()
        print(jsondata)
        try:
            return render(request, 'cart.html', {
            "order_id": jsondata['order_id'],
            "user_id": jsondata['user_id'],
            "wallet_amount": jsondata['wallet_amount'],
            "payable_amount": jsondata['payable_amount'],
            "payment_status": jsondata['payment_status'],
            "payment_mode": jsondata['payment_mode'],
            "order_status": jsondata['order_status'],
            "delivery_status": jsondata['delivery_status'],
            "order_delivery_type": jsondata['order_delivery_type'],
            "get_cart_total_discount": jsondata['get_cart_total_discount'],
            "get_cart_total_GST": jsondata['get_cart_total_GST'],
            "get_cart_total": jsondata['get_cart_total'],
            "get_cart_sub_total": jsondata['get_cart_sub_total'],
            "get_cart_quantities": jsondata['get_cart_quantities'],
            "get_cart_items": jsondata['get_cart_items'],
            "deliveryCharges": jsondata['deliveryCharges'],
            "subscription_type": jsondata['subscription_type'],
            "subscriptionId": jsondata['subscriptionId'],
            "products": jsondata['products']
        })
        except simplejson.errors.JSONDecodeError:
            return render(request, 'cart.html', {})
    else:
        print("login")
        return redirect('login')
 

Комментарии:

1. почему бы вам просто не проверить наличие пустых значений и не перехватить ошибки до их возникновения.

2. вы уверены, что улавливаете это? что дает печать (jsondata), когда она пуста?

3. Вы не улавливаете ошибку jsondata = requests.get(url, headers=headers).json() . В этой строке выполняется преобразование в json, его нет в блоке try .