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 %}