Django: не удалось преобразовать строку в float: ''
Я пытаюсь написать функцию для отображения всех товаров в корзине, но она продолжает показывать эту ошибку could not convert string to float: "
и я не могу определить, откуда берется проблема? Я пробовал изменить метод float(...)
на int(...)
. какова возможная ошибка?
def cart_view(request):
cart_total_amount = 0
if 'cart_data_obj' in request.session:
for p_id, item in request.session['cart_data_obj'].items():
print("Item PRice is ##################", item['price'])
cart_total_amount += int(item['qty']) * float(item['price'])
return render(request, "core/cart.html", {'cart_data':request.session['cart_data_obj'], 'totalcartitems': len(request.session['cart_data_obj']), 'cart_total_amount':cart_total_amount})
else:
return render(request, 'core/cart.html', {'cart_data':'','totalcartitems':0,'cart_total_amount':cart_total_amount})
traceback
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Item PRice is ##################
Internal Server Error: /cart/
Traceback (most recent call last):
File "C:\Users\Destiny\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Destiny\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Destiny\Desktop\E-commerce\ecomprj\core\views.py", line 230, in cart_view
cart_total_amount += int(item['qty']) * float(item['price'])
ValueError: could not convert string to float: ''
[28/Oct/2022 22:17:42] "GET /cart/ HTTP/1.1" 500 68398
Похоже, что вы получаете пустую строку ''
при попытке преобразовать item['price']
в float
.
>>> float('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: ''
Убедитесь, что item['price']
имеет действительное значение, прежде чем преобразовывать его в float
. Судя по предоставленной вами трассировке ошибки, похоже, что request.session['cart_data_obj']
не имеет правильной информации. В какой-то момент, когда вы устанавливаете session['cart_data_obj']
, значение для ключа "price"
устанавливается в пустую строку ''
.