У меня есть страница с одним продуктом, на которой у меня есть кнопка «Добавить в корзину», но если этот продукт уже существует в корзине, я хочу вместо этого показать значок «Добавлен в корзину». Я не могу найти способ проверить это. Вот мой models.py
class Order(models.Model):
customer=models.ForeignKey(Customer,on_delete=models.SET_NULL,null=True,blank=True)
date_ordered=models.DateTimeField(auto_now_add=True)
complete=models.BooleanField(default=False,null=True,blank=False)
transaction_id=models.CharField(max_length=100,null=True)
class OrderItem(models.Model):
product=models.ForeignKey(Product,on_delete=models.SET_NULL,null=True)
order=models.ForeignKey(Order,on_delete=models.SET_NULL,null=True)
quantity=models.IntegerField(default=0,null=True,blank=False)
date_added=models.DateTimeField(auto_now_add=True)
class Product(models.Model):
category = models.ForeignKey(Category, on_delete = models.CASCADE)
productid=models.CharField(max_length=30)
name=models.CharField(max_length=30)
А вот мой views.py
def singleproduct(request, id):
context = {
'types': Category.objects.all(),
'prods': Product.objects.filter(productid = id),
'in_cart': False,
}
if request.user.is_authenticated:
order = Order.objects.get_or_create(customer=request.user.customer, complete=False)[0]
context['in_cart'] = order.products.filter(product_id=id).exists()
return render(request,"singleproduct.html", context)
def cart(request):
customer=request.user.customer
order, created=Order.objects.get_or_create(customer=customer, complete=False)
items=order.orderitem_set.all()
context={
'items':items,
'order':order
}
return render(request,"cart.html",context)
def category(request):
context = {
'types' : Category.objects.all(),
'prods': Product.objects.filter(),
'cartItems':[],
'in_cart': False,
}
if request.user.is_authenticated:
customer=request.user.customer
order, created=Order.objects.get_or_create(customer=customer, complete=False)
cartItems=order.get_cart_items,
items=order.orderitem_set.all()
context['in_cart'] =order.orderitem_set.filter(product__productid=id).exists()
return render(request,"category.html",context)
А вот мой html код для этой кнопки
{% if user.is_authenticated %}
{% if in_cart %}
<button data-product={{product.id}} data-action="add"
class="btnabc btnabc-warning update-cart">Added</button>
{% else %}
<button data-product={{product.id}} data-action="add"
class="btnabc btnabc-warning update-cart">Add to Cart</button>
{% endif %}
{% else %}
<button class="btnabc btnabc-warning"><a href="/login/">Add to
Cart</a></button>
{% endif %}
Но похоже, что он не работает, даже если продукта нет в корзине, он показывает Добавлено. Пожалуйста, предложите мне способ, чтобы в моем html коде Я могу проверить, есть ли товар в корзине или нет, и отобразить соответствующие кнопки. Любая помощь будет принята.