#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 .