Могу ли я использовать счетчик для l oop, если в именах свойств в Django есть число? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть этот html код, но у меня 20 продуктов, и единственный код, который в них изменяется, - это image1 caption1 product1 et c.

Я новичок в Django и не уверен, можно ли это сделать с помощью для l oop с помощью счетчика или с помощью {% include ___ with ____ %}? Или можно с кодом Python? Я даже новичок в Python и не знаю, как это сделать.

Я попробовал счетчик для l oop, но он сказал, что не могу сделать {% image page.image{{ forloop.counter }} fill... %}, поскольку он ожидает %} перед {{ }}

 {# Product1 #}
        <div class="document product-card">
            <div class="w3-card-4 w3-margin w3-white" data-aos="fade-down">
                {% image page.image1 fill-150x150-c100 %}
                <div class="w3-container">

                </div>
                <hr>
                <p id="caption">{{ page.caption1 }}</p>
                {% for download in page.product1.all %}
                    {% with doc=download.product1 %}
                        <div class="download product-info">
                            <a href="{{ doc.url }}" class="smooth-over-button noDecoration">
                                <i class="fa fa-download"></i>
                                <p class="btn-txt">{{ doc.title }}</p>
                            </a>
                        </div>
                    {% endwith %}
                {% endfor %}
            </div>
        </div>

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

попробуйте это:

page.image|add:forloop.counter
page.caption|add:forloop.counter
page.product|add:forloop.counter
0 голосов
/ 10 июля 2020

Оператор with внутри вашего l oop выполняет кеширование, поэтому создаваемая вами переменная do c всегда будет указывать на ваш первый продукт.

Я предлагаю вам полностью отказаться от и вместо этого ссылайтесь на документ с полным именем.

Кроме того, кажется, что где-то в другом месте может быть ошибка logi c или, по крайней мере, некоторые переменные с плохим именем, поскольку вы ссылаетесь на product1 на странице и затем загружается product1.

Если вы новичок в python, но имеете опыт работы с другими языками, лучше рассматривать оператор for как foreach, поскольку python не имеет традиционного for logi c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...