Попытка удалить товар из корзины
Пытаюсь создать приложение корзины и в настоящее время застрял, пытаясь удалить один товар из корзины. Я не могу понять, как удалить один товар, поскольку в настоящее время он удаляет все ID товара с помощью функции remove.
Это файл models.py:
from django.db import models
from django.urls import reverse
from e_boutique.settings import AUTH_USER_MODEL
class Product(models.Model):
name = models.CharField(max_length=128)
slug = models.CharField(max_length=128)
price = models.FloatField(default=0.0)
stock = models.IntegerField(default=0)
description = models.TextField()
thumbnail = models.ImageField(upload_to="products", blank=True, null=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('product', kwargs={"slug":self.slug})
class Order(models.Model):
user = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
ordered = models.BooleanField(default=False)
def __str__(self):
return f"{self.product.name} ({self.quantity})"
class Cart(models.Model):
user = models.OneToOneField(AUTH_USER_MODEL, on_delete=models.CASCADE)
orders = models.ManyToManyField(Order)
ordered = models.BooleanField(default=False)
ordered_date = models.DateTimeField(blank=True, null=True)
def __str__(self):
return self.user.username
и вот мой файл views.py:
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from store.models import Cart, Order, Product
def index(request):
products = Product.objects.all()
return render(request, 'store/index.html', context={'products': products})
def product_details(request, slug):
product = get_object_or_404(Product, slug=slug)
return render(request, 'store/product_details.html', context={'product': product})
def add_to_cart(request, slug):
user = request.user
product = get_object_or_404(Product, slug=slug)
cart, _ = Cart.objects.get_or_create(user=user)
order, created = Order.objects.get_or_create(user=user, product=product)
if created:
cart.orders.add(order)
cart.save()
else:
order.quantity += 1
order.save()
return redirect(reverse("product", kwargs={"slug":slug}))
def cart(request):
cart = get_object_or_404(Cart, user=request.user)
return render(request, 'store/cart.html', context={"orders":cart.orders.all()})
def delete_to_cart(resquest, slug):
# remove an item from cart
user =resquest.user
cart = Cart.objects.get_or_create(user=user)
product = get_object_or_404(Product, slug=slug)
order = Order.objects.get_or_create(user=user, product=product)
if product in cart:
# Subtract 1 from the quantity
order -= 1
# If the quantity is now 0, then delete the item
if order == 0:
del cart.product
cart.save()
return redirect(reverse('cart'))
спасибо за помощь