Я немного озадачен вашим кодом шаблона Django.Вы говорите, что можете разместить любое количество книг на странице.Какой контекст вы передаете шаблону Django?
Судя по коду вашего шаблона, кажется, что у вас есть отдельные списки для каждого свойства - один список для всех изображений всех книг, один список для всехавторы и т. д.
Я бы подумал, что было бы более разумно иметь список объектов книги, где каждая книга имеет свои свойства, как вы знаете, свойства.Например,
<ul>{% for book in books %}
<li>
<h2>{{ book.title|safe }}</h2>
<p>by {{ book.author|safe }}</p>
<p>{{ book.image }}</p>
<h3>Editions</h3>
<ul>{% for edition in book.editions %}
<li>{{ edition|safe }}</li>
</ul>
</li>{% endfor %}
</ul>
Конечно, это может не иметь смысла для вашего бэк-энда, но сейчас я не совсем понимаю, в чем ваша проблема на самом деле.
Редактировать:
Думаю, теперь я понимаю ваш контекст.Это действительно не проблема HTML, это проблема шаблона Django.Поскольку у вас есть отдельные списки для каждого свойства ваших книг (вместо списка объектов книги), вам нужно пройтись по этим индексам.Поскольку язык шаблонов Django не имеет встроенного эквивалента range
функции Python , вам придется либо использовать пользовательский тег шаблона, либо вставить список индексов в свой контекст (например, context['indexes'] = len(context['editions'])
).
Но я бы подумал, что было бы немного более Django-y просто передать список объектов книги в ваш шаблон, как я предлагал выше.