У меня есть страница категории (с несколькими продуктами, под которыми есть кнопка «Добавить в корзину»), на которой у меня есть кнопка «Добавить в корзину», но если этот продукт уже существует в корзине, я хочу вместо этого показать значок «Добавлено в корзину». Я не могу придумать, как это проверить. Вот мой 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 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 коду я мог проверить, есть ли товар в корзине или нет и покажите кнопки соответственно. Любая помощь будет принята.