Как сделать уменьшение товара на складе после оформления заказа Python Django
Предоставляю код класа Product и функцию оформления заказа Order_create,пробував через id получаю ошибку DoesNotExist at order/ Product matching query does not exist models.py
class Product(models.Model):
name = models.CharField(max_length=250, unique=True)
slug = models.SlugField(max_length=250, unique=True)
description = models.TextField(blank=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
price = models.DecimalField(max_digits=10, decimal_places=2)
image = models.ImageField(upload_to='product', blank=True)
stock = models.IntegerField()
available = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Meta:
ordering = ('name',)
verbose_name = 'product'
verbose_name_plural = 'products'
def get_url(self):
return reverse('product_detail', args=[self.category.slug, self.slug])
def __str__(self):
return self.name
views.py
def order_create(request):
cart = Cart.objects.get(cart_id=_cart_id(request))
cart_item = CartItem.objects.filter(cart=cart, active=True)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
for item in cart_item:
OrderItem.objects.create(order=order, product=item.product, price=item.product.price,
quantity=item.quantity)
product = Product.objects.get(id=item.id)
product.stock = product.stock - item.quantity
product.save()
cart_item.delete()
else:
form = OrderCreateForm()
return render(request, 'checkout.html', {'cart_item': cart_item, 'form': form})