【发布时间】:2021-05-08 15:29:17
【问题描述】:
我想要做的是获得特定的帖子 cmets。
models.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')
views.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')
urls.py
path('post/<int:pk>/responses/', CommentDetailView.as_view(), name='responses')
但是我在尝试访问这样的 url 时遇到了错误:
未找到:/post/12/responses/
【问题讨论】:
-
给定的代码部分不一致:
reverse('post-detail'与path(... name='responses',post-detail的 URL 与CommentDetail的视图。 -
您确定该对象存在于数据库中吗?
get_object_or_404(Post, id=self.kwargs.get('pk')) -
即使完整配置没问题,错误也很明显:您似乎在数据库中没有 pk=12 的帖子。但是,似乎配置已损坏,实际上代码正在尝试获取带有帖子 ID 的评论实例。也许 id=12 的帖子存在,但 id=12 的评论不存在。
-
向我们展示您的完整回溯。
标签: django django-models django-views