Я столкнулся с ошибкой при удалении товаров из корзины. Когда я добавляю товар в корзину, устанавливая количество и нажимая на кнопку «Удалить», появляется сообщение об ошибке.
локальная переменная 'product', на которую ссылается перед присвоением
У меня есть продукт в файле models.py и я ссылаюсь на него, импортировав модели, и попытался изменить имя, но все равно выдает ошибку.
views.py
def update_cart(request,slug):
request.session.set_expiry(1200000)
try:
qty=request.GET.get('qty')
update_qty=True
except:
qty=None
update_qty=False
try:
the_id=request.session['cart_id']
except:
new_cart=Cart()
new_cart.save()
request.session['cart_id']=new_cart.id
the_id=new_cart.id
cart = Cart.objects.get(id=the_id)
try:
product=Product.objects.get(slug=slug)
except Product.DoesNotExist:
pass
except:
pass
cart_item,created=CartItem.objects.get_or_create(cart=cart,product=product)
if created:
print("yeah")
if update_qty and qty:
if int(qty)<=0:
cart_item.delete()
else:
cart_item.quantity=qty
cart_item.save()
else:
pass
return HttpResponseRedirect(reverse("carts:cart"))
models.py
class CartItem(models.Model):
cart=models.ForeignKey('Cart',on_delete=models.SET_NULL,null=True,blank=True)
product=models.ForeignKey(Product,on_delete=models.SET_NULL,null=True,blank=True)
accessory = models.ForeignKey(Accessories,on_delete=models.SET_NULL,null=True,blank=True)
quantity=models.IntegerField(default=1)
updated = models.DateTimeField(auto_now_add=True,auto_now=False)
line_total=models.DecimalField(default=10.99,max_digits=1000,decimal_places=2)
timestamp = models.DateTimeField(auto_now_add=True,auto_now=False)
objects = CartManager()
def __unicode__(self):
try:
return str(self.cart.id)
except:
return self.product.title
Если кто-нибудь может помочь, это будет очень признательно?
Примечание
Я видел другую ссылку на stackoverflow, но никто не помог.