Цикл '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)
Вернуться на верх