Модели: Блог, Раздел, Статья, Автор.
class Blog(models.Model):
name = models.CharField()
class Section(models.Model):
name = models.CharField()
authors = models.ManyToManyField(Author, through='Article')
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
class Article(models.Model):
name = models.CharField()
section = models.ForeignKey(Section, on_delete=models.CASCADE)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
class Author(models.Model):
name = models.CharField()
Желаемая структура страницы с деталями автора:
Данные автора.
___________________________
Имя блога 1.
Имя раздела 1.
Имя статьи 1.
Имя статьи 2.
Имя раздела 2.
...
Имя блога 2.
Имя раздела 1.
Имя статьи 1.
...
___________________________
Не могу разобраться, как дополнить контекст для передачи в шаблон, чтобы можно было циклично проходиться по именам блог-раздел-статья, свойственным автору.
{% for blog in blogs %}
{{ blog.name }}
{% for section in blog.section_set.all %}
{{ section.name }}
{% for article in section.article_set.all %}
{{ article.name }}
Так выводится всё подряд, а не только данные по конкретному автору.
class DetailView(generic.DetailView):
model = Author
template_name = 'author_details.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
blogs = Blog.objects.filter(section__article__author=self.object)
context['blogs'] = blogs
return context
Может кто-нибудь подсказать верный подход?