Как вывести в шаблоне корректно значение в цикле?
Получился массив элементов для каждого продукта товаров в цикле. В цикле шаблона дублируется для каждого продукта, как сделать чтобы в шаблоне в цикле {% for product in products %} {% endfor %} выводился корректно по одному значению для каждого продукта!
views.py:
def product_list(request, category_slug=None, id_p=None):
category = None
categories = Category.objects.filter(published=True)
products = Product.objects.filter(published =True)
if category_slug:
category = get_object_or_404(Category, category_id=category_slug)
products = products.filter(category=category)
paginator = Paginator(products, 100) # Show 25 contacts per page.
page = request.GET.get("page")
user_k = f'{request.user.usrid.discount_list_k1}'
post = []
for product in products:
post.append({"price_k": max(float(product.discount_product_min),
float(user_k)) * float(product.price) })
try:
products = paginator.page(page)
except PageNotAnInteger:
products = paginator.page(1)
except EmptyPage:
products = paginator.page(paginator.num_pages)
return render(request,
'shop/product/list.html',
{'category': category,
'categories': categories,
'products': products,
'post': post,
'page': page})
как сделать, чтобы {{post}} в шаблоне в цикле {% for product in products %} {% endfor %} выводился корректно по одному значению для каждого продукта?
list.html:
<div class="page collapse show">
{% for product in products %}
<div class="row align-items-center">
<div class="col-lg-1 col-2 text-right text-muted">{{ product.id_p}}<br>
</div>
<div class="col-xl-7 col-lg-6 col-10">
<div>
<a title="подробнее..." href="{{ product.get_absolute_url }}" >{{ product.name }}
<div class="tumb" style="display: none;"><img src="{% if product.image %}{{ product.image.url }}{% else %}{% static "img/no_image.png" %}{% endif %}">
</div>
</a>
</div>
<div class="float-left small">
<span title="артикул товара: {{product.artikul}}" class="mr-3">
<i class="text-muted">арт:
</i>{{product.artikul}}
</span>
<span title="в упаковке: {{ product.upakovka_f}} {{ product.shtuk_e}}" class="mr-3"><i class="text-muted">упак: </i>{{ product.upakovka_f}} {{ product.shtuk_e}}
</span>
<span title="миним. норма отпуска {{ product.min_kol}} {{ product.shtuk_e}}">
<i class="text-muted ml-2">мин
</i>: {{ product.min_kol}} {{ product.shtuk_e}}
</span>
</div>
<div class="manufactur float-right small text-muted mr-2">ABRO
</div>
</div>
<div class="col-xl-4 col-lg-5 col-12">
<div class="d-flex justify-content-between">
<div class="123as">
<span class="text-muted small mr-1" title="в наличии более {{ product.stock}} ">{{ product.stock}} {{ product.shtuk_e}}
</span>
<i class="bi bi-patch-minus-fill" title="уменьшение">
</i>
<input class="inpbas" maxlength="5">
<i class="bi bi-patch-plus-fill" title="увеличение">
</i>
</div>
<x class="amount">**{{ post}}**
</x>
<div class="addbasket float-rigth">
<button class="addbutton" type="button" class="btn add"><i class="bi bi-cart-plus"></i> купить
</button>
</div>
</div>
</div>
</div>
<hr>
{% endfor %}
</div>
Как один из вариантов начал добавлять словарь
post.append({"price_k":max(float(product.discount_product_min), float(user_k)) * float(product.price) })
Потом хотел Обьект products модели превратить в словарь. и склеить их. Но не получилось их склеить