Django - как получить данные из отношений?

Я пытаюсь получить данные через отношения "многие-ко-многим" и "один-ко-многим".

view.py

class PublisherDetailView(generic.DetailView):
     model = Publisher
     template_name = 'store/publisher_detail_view.html'

models.py

class Publisher(models.Model):
    name = models.CharField(null=False, max_length=30)
    image = models.ImageField(upload_to='publisher_images/')
    
class Book(models.Model):
    title = models.CharField(null=False, max_length=30)
    description = models.CharField(max_length=1000)
    publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
    
class reader(models.Model):
    name = models.CharField(max_length=40)
    book = models.ManyToManyField(Book)

publisher_detail_view.html

{% for reader in publisher.book_set.readers.all %}
    <p>{{ reader.name }} </p>
{% endfor %}

Я просто хочу получить всех читателей из определенного издателя. Какой правильный код в шаблоне? publisher.book_set.readers.all имеет смысл для меня (начинающего), но не работает

book_set.readers не работает, потому что book_set - это менеджер, который управляет списком книг. Чтобы получить читателей, необходимо выполнить итерацию по книгам:

{% for book in publisher.book_set.all %}
    {% for reader in book.reader_set.all %}
        <p>{{ reader.name }} </p>
    {% endfor %}
{% endfor %}
Вернуться на верх