В проекте есть посты. У постов есть комментарии. У каждого коммента в бд присвоен pk поста, под которым написан этот коммент

Рейтинг: -1Ответов: 1Опубликовано: 09.06.2023

Смысл в том, что я хочу чтоб при открытии поста выводились только те комментарии, где post_id комментария равен request post id. Все это добро хочу сделать через .filter()

views.py

def post_detail(request, pk):
    "Запрос конкретного поста."
    template = 'blog/detail.html'
    post = get_object_or_404(
        Post.objects.select_related(
            'category'
        ).filter(
            is_published=True,
            pub_date__lte=datetime.datetime.now(),
            category__is_published=True
        ),
        pk=pk
    )
    list_comments = Comment.objects.filter(
          **Как вот тут присвоить post_id (Комментария) = request.post.id?**
)
    comment = CommentForm()
    context = {
        'post': post,
        'comments': list_comments,
        'form': comment,
    }
    return render(request, template, context)

Ответы

▲ 0

Если у вас в модели комментария есть поле post_id, тогда так и пишите:

list_comments = Comment.objects.filter(post_id=post.id)

Пояснение:

Вы не можете взять из request пост к которому хотите найти комментарии, в конце концов вам это и не надо, вы уже нашли пост на страницу которого переходите, просто передайте его id.