from django.shortcuts import render
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from journal.models import Post, Corrections, Comments
class PostListView(ListView):
model = Post
def get_context_data(self, **kwargs):
context = super(PostListView, self).get_context_data(**kwargs)
context['comment_count'] = Comments.objects.filter(post_id=self.id).count()
return context
Это неправильная строка кода:
context['comment_count'] = Comments.objects.filter(post_id=self.id).count()
Если я вручную заменю self.id
на число, то оно будет правильно захватывать счетчик комментариевpost.
Что приводит меня к моему вопросу:
Как мне получить post.id, если я нахожусь в ListView?
edit:
from django.urls import path
from journal.views import PostListView, PostDetailView
urlpatterns = [
path('', PostListView.as_view(), name='post-list'),
path('<int:pk>/', PostDetailView.as_view(), name='post-detail'),
]