Если у вас есть Genre
экземпляр genre
, то книги, связанные с ним:
genre.book_set.all() # set related_name in your model if you want this to be genre.books.all()
Так что если у вас есть список жанров, как вы передаете в своем контексте,Вы можете сделать это в своем шаблоне, чтобы отобразить все книги по жанру:
{% for genre in genres %}
Books for {{ genre }}:
{% for book in genre.book_set.all %}
{{ book.title }} <br>
{% endfor %}
{% endfor %}
Обратите внимание, что ваше представление выбирает только жанры, поэтому при отображении шаблона Django должен выполнить один запрос к базе данных для каждого жанра.чтобы получить все книги.Если вы хотите избежать этого и иметь только один дополнительный запрос, чтобы получить их все за один раз, измените запрос в своем представлении:
genres = Genre.objects.all().prefetch_related('book')