Я пытаюсь сделать интернет-магазин с Django.Но у меня есть некоторые проблемы.Во время создания корзины я получаю сообщение об ошибке "локальная переменная" cart_id ", на которую ссылается перед назначением" в views.py.Вот этот файл:
def cart_view(request):
try:
cart_id = request.session['cart_id']
cart = Cart.objects.get(id=cart_id)
request.session['total'] = cart.items.count()
except:
cart = Cart()
cart.save()
cart_id = cart_id
request.session['cart_id'] = cart_id
cart = Cart.objects.get(id=cart_id)
categories = Category.objects.all()
return render(request, 'cart.html', locals())
Вот трассировка
Traceback:
File "C:\Users\tankr\Django_projects\django_shop\ecomapp\views.py" in product_view
13. cart_id = request.session['cart_id']
File "C:\Users\tankr\Django_projects\django_shop\eComEnv\lib\site-packages\django\contrib\sessions\backends\base.py" in __getitem__
54. return self._session[key]
During handling of the above exception ('cart_id'), another exception occurred:
File "C:\Users\tankr\Django_projects\django_shop\eComEnv\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\tankr\Django_projects\django_shop\eComEnv\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:\Users\tankr\Django_projects\django_shop\eComEnv\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\tankr\Django_projects\django_shop\ecomapp\views.py" in product_view
19. cart_id = cart_id
Exception Type: UnboundLocalError at /product/macbook-pro/
Exception Value: local variable 'cart_id' referenced before assignment
Затем я попытался решить эту проблему, добавив global cart_id
к функции cart_view и получил еще одну ошибку: name 'cart_id'не определено.Вот новая трассировка:
Traceback:
File "C:\Users\tankr\Django_projects\django_shop_2\ecomapp\views.py" in product_view
14. cart_id = request.session['cart_id']
File "C:\Users\tankr\Django_projects\django_shop_2\eComEnv\lib\site-packages\django\contrib\sessions\backends\base.py" in __getitem__
54. return self._session[key]
During handling of the above exception ('cart_id'), another exception occurred:
File "C:\Users\tankr\Django_projects\django_shop_2\eComEnv\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\tankr\Django_projects\django_shop_2\eComEnv\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:\Users\tankr\Django_projects\django_shop_2\eComEnv\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\tankr\Django_projects\django_shop_2\ecomapp\views.py" in product_view
20. cart_id = cart_id
Exception Type: NameError at /product/iphone-xr-128gb/
Exception Value: name 'cart_id' is not defined