Реализация формы. Django

пишу интернет магазин на Django. Реализовал добавление товара в корзину через форму:

from django import forms

PRODUCT_QUANTITY_CHOICES = [(i, str(i)) for i in range(1, 41)]


class CarttAddProductForm(forms.Form):
    quantity = forms.TypedChoiceField(
        choices=PRODUCT_QUANTITY_CHOICES,
        coerce=int,
        label='Количество',
        empty_value=15
        )
    update = forms.BooleanField(required=False, initial=False, widget=forms.HiddenInput)

views.py:

@require_POST
def cartt_add_retail(request, slug):
    cartt = Cartt(request)
    product = get_object_or_404(Product, slug=slug)
    form = CarttAddProductRetailForm(request.POST)
    if form.is_valid():
        cd = form.cleaned_data
        cartt.add_retail(
            product=product,
            quantity=cd['quantity'],
            update_quantity=cd['update']
        )
    return redirect('cartt_detail_retail')

и эта конструкция справляется со своей задачей на странице одного товара, но при попытке использовать ее же при выводе списка товаров, товар не добавляется в корзину.

single_product.html:

<div class="col-md-6">
                <h1 class="display-5 fw-bolder">{{ product_retail.title }}</h1>
                <div class="small mb-3">Категория: <a href="{% url 'products_retail_by_category' slug=product_retail.category.slug %}">{{ product_retail.category }}</a></div>
                <div class="fs-5 mb-5">
                    <span>Цена: {{ product_retail.price_retail }} грн</span>
                </div>
                <div class="small mb-3">Вид товара:    <a href="{{ product_retail.tag.get_absolute_url }}">{{ tag.title }}</a></div>
                <p class="lead">{{ product_retail.description }}</p>
                <form action="{% url 'cartt_add_retail' slug=product_retail.slug %}" method="post">
                    {{ cartt_product_form }}
                    {% csrf_token %}
                    <input class="btn btn-outline-dark flex-shrink-0"
                           type="submit"
                           value="Добавить в корзину">
                </form>
            </div>

products.html:

{% for item in products_retail %}
<div class="col mb-5">
        {% if item.image %}
        <a href="{% url 'product_retail' slug=item.slug %}"><img class="card-img-top" src="{{ item.image.url }}" width="300" height="300" alt="" /></a>
        {% else %}
        <img class="card-img-top" src="https://dummyimage.com/450x300/dee2e6/6c757d.jpg" width="300" height="300" alt="" />
        {% endif %}
        <div class="card-body p-4">
            <div class="text-center">

                <h5 class="fw-bolder"><a href="{% url 'product_retail' slug=item.slug %}">{{ item.title }}</a></h5>
                <div class="d-flex justify-content-center small text-warning mb-2">
                </div>
                <span class="text-muted">{{ item.price_retail }} грн</span>
            </div>
            <div class="text-center">
                {% if item.is_available %}
                <span class="text-success">В наличии</span>
                {% else %}
                <span class="text-danger">Нет в наличии</span>
                {% endif %}
            </div>
        </div>
        <form action="{% url 'cartt_add_retail' slug=item.slug %}" method="post">
            {{ cartt_product_form }}
            {% csrf_token %}
            <input class="btn btn-outline-dark flex-shrink-0"
                   type="submit"
                   value="Добавить в корзину">
        </form>
    </div>
</div>
{% endfor %}

Спасибо большое!

Вернуться на верх