Цикл 'for' только для одного атрибута товара в django
Я хочу вычислить разницу между общим количеством товара и количеством товара в shopcart. Поэтому я сделал вычисления в моих представлениях и применил их к шаблонам. Проблема в том, что цикл for, который, как я думаю, должен перебирать все товары, перебирает только недавно добавленный товар и выдает результат для всех товаров. Что я сделал не так? Вот код:
Шаблон
{% for rs in products %}
<div>
<a href="{% url 'addtoshopcart' rs.id %}" class="primary-btn add-to-cart"><i class="fa fa-shopping-cart"></i> Add to Cart</a>
</div>
<p><strong>Availability:</strong> {% if tot > 0 %} In Stock : {{tot}} Remaining {% else %} Out of Stock {% endif %}</p>
{% endfor %}
Виды
def category_products(request,id,slug):
current_user = request.user
#category = Category.objects.all()
setting = Setting.objects.get(pk=1)
catdata = Category.objects.get(pk=id)
products = Product.objects.filter(category_id=id)
context={'products': products,
#'category':category,
'setting':setting,
'catdata':catdata }
for rs in products:
if rs.variant == 'None':
checkinproduct = ShopCart.objects.filter(product_id=id, user_id=current_user.id) # Check product in shopcart
if checkinproduct:
control = 1 # The product is in the cart
else:
control = 0 # The product is not in the cart"""
if control == 1:
tot = rs.amount - ShopCart.objects.get(product_id=id, user_id=current_user.id).quantity
else:
tot = rs.amount
context.update({'tot': tot})
else:
pass
return render(request,'category_products.html',context)