значение словаря python печатается в строке, но не печатается в другой строке в django

#python-3.x #django #django-templates

Вопрос:

Я новичок в django и использую python версии 3.8

В моем index.html, Я пытаюсь отобразить продукты и их информацию, используя для цикла, как показано ниже:

 {% for prod in products %}
<footer class="card-footer">
    <span id="atc_prod_{{ prod.product_id }}" class="atc_prod">prod_{{ prod.product_id }}
    <button class="button is-info is-small card-footer-item cart" id="prod_{{ prod.product_id }}">Add to Cart</button>
    </span>
    <a href="/shop/products/{{ prod.product_id }}"><button class="button is-small is-info card-footer-item cart" id="qv{{ prod.product_id }}">Quick View</button></a>
</footer>
{% endfor %}
 

Структура списка продуктов выглядит следующим образом:

 products = [
    {'id':'1', 'name':'A'},
    {'id':'2', 'name':'B'},
    {'id':'3', 'name':'C'}
]
 

То же prod.product_id самое используется в 3 местах (span — id, идентификатор кнопки и a — href), но для нескольких продуктов (2 из 5) идентификатор пуст.

Смотрите скриншот ниже HTML: HTML - элемент проверки

Я не знаю причины, пожалуйста, предложите.

Кроме того, пожалуйста, дайте мне знать, если я пропустил какую-либо важную информацию.

Заранее спасибо.

Ответ №1:

Итак, основываясь на вашем списке словарей, ваши ключи есть id , и name поэтому вам нужно сделать {{ prod.id }} ;

 {% for prod in products %}
    <footer class="card-footer">
        <span id="atc_prod_{{ prod.id }}" class="atc_prod">prod_{{ prod.id }}
            <button class="button is-info is-small card-footer-item cart" id="prod_{{ prod.id }}">Add to Cart</button>
        </span>
        <a href="/shop/products/{{ prod.id }}"><button class="button is-small is-info card-footer-item cart" id="qv{{ prod.id }}">Quick View</button></a>
    </footer>
{% endfor %}
 

Комментарии:

1. извините за путаницу, список словарей-это просто пример, В реальном словаре имя ключа-product_id