首页 > 解决方案 > 未找到:/post/12/responses/

问题描述

我想要做的是获得特定的帖子评论。

模型.py

class Post(models.Model):
    title = models.CharField(max_length = 100)
    content = models.TextField()
    date = models.DateTimeField(default=timezone.now) 
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk': self.pk})


class Comments(models.Model):
    post = models.ForeignKey(Post,related_name='comments',on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    date = models.DateTimeField(default=timezone.now)
    content = models.TextField()
    def get_absolute_url(self):
        return reverse('Home')

视图.py

class CommentDetailView(DetailView):
    model = Comments
    template_name = 'CovidHelp/comment_response.html'
    context_object_name = 'comments'
    paginate_by = 10
    def get_queryset(self):
        post = get_object_or_404(Post, id=self.kwargs.get('pk'))
        return Comments.objects.filter(post=post).order_by('-date')

网址.py

path('post/<int:pk>/responses/', CommentDetailView.as_view(), name='responses')

但是,当我尝试访问这样的 url 时出现错误:

未找到:/post/12/responses/

标签: djangodjango-modelsdjango-views

解决方案


你想返回一个帖子的评论列表吗?

所以你需要使用Listview而不是使用detailview来返回评论列表,然后用get_querysetpost id来过滤它。


推荐阅读