Можно ли получить всех авторов одним запросом в django
class Author(models.Model):
name = models.CharField(max_length=50)
class Chapter(models.Model):
book = models.ForeignKey(Album, on_delete=models.CASCADE)
author = models.ManyToManyField("Author")
class Book(models.Model):
author = models.ManyToManyField("Author")
Я пытаюсь показать всех связанных авторов, когда я посещаю детали одного автора. Для этого в настоящее время я делаю следующее:
authors = []
for chapter in Author.objects.get(id=id).chapter_set.all():
authors.append(chapter.artists.all())
Есть ли другой способ сделать это с помощью djangoORM
Вы можете следовать ManyToManyField отношениям назад в фильтрах, в случае модели Author вы должны быть в состоянии использовать chapter__ для доступа к Chapter.author отношениям
authors = Author.objects.filter(chapter__author_id=id).distinct()