Для этого вы можете использовать общий вид.
from django.views.generic import View
class PostDetailView(View):
def get(self, request, *args, **kwargs)
post = get_object_or_404(Post, id=pk)
comments = Comment.objects.filter(post=post).order_by('-id')
is_liked = False
if post.likes.filter(id=request.user.id).exists():
is_liked = True
comment_form = CommentForm()
context = {
'post': post,
'is_liked': is_liked,
'total_likes': post.total_likes(),
'comments': comments,
'comment_form': comment_form
}
return render(request, 'feed/post_detail.html', context)
def post(self, request, *args, **kwargs):
comment_form = CommentForm(request.POST or None)
if comment_form.is_valid():
content = request.POST.get('content')
comment = Comment.objects.create(post=post, user=request.user, content=content)
comment.save()
resp = post.get_absolute_url()
return HttpResponseRedirect(resp)