@MrCute
Студент

Как вывести все «привязаные» в статье коментарии?

Приветствую. Нужна помощь в выводе на страницу всех комментариев, которые привязаны к определённой статьи.

Модель статьи:

class Article(models.Model):

    title = models.CharField(max_length=255, verbose_name=u'Заголовок')
    text = models.TextField(verbose_name=u'Текст')
    author = models.ForeignKey(settings.AUTH_USER_MODEL)
    rating = models.IntegerField(default=0, verbose_name=u'Рейтинг')
    pub_date = models.DateField(auto_now_add=True)


Модель коментария:
class Comment(models.Model):

    text = models.TextField(verbose_name='Текст')
    pub_date = models.DateField(auto_now_add=True)
    author = models.ForeignKey(settings.AUTH_USER_MODEL)
    article = models.ForeignKey(to=Article, on_delete=models.CASCADE)


Функция детального представления статьи:
def detail_art_view(request, a_id=1):

    article = Article.objects.get(id=a_id)
    comments = Comment.objects.all()
    context = {'Article': article, 'com_list': comments}
    return render(request, 'detail.html', context)


Проблема в том, что у меня выводятся все вопросы со всех статей на всех страницах со статьями(не знаю как отфильтровать). Гугл и документация не помогли. Только учусь и прошу помочь.
Заранее спасибо.
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
sim3x
@sim3x
comments = Comment.objects.filter(article=a_id)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@deliro
some_article.comment_set.all()
Название менеджера для обратной связи можно переопределить related_name'ом:
article = models.ForeignKey(to=Article, on_delete=models.CASCADE, related_name='comments')

И тогда:
some_article.comments.all()
Ответ написан
Комментировать
crazyzubr
@crazyzubr
Python backend-developer
comments = Comment.objects.filter(article=article)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы