我正试图在Django中建立一个博客。
当我单击以查看/阅读文章及其相关评论的详细信息时,我只会看到评论,文章的详细信息不会显示,但页面不会失败。
我尝试仅将模型称为“ LifePost”,然后在模板中显示数据,但不显示相关注释(仅显示其字段)。
我尝试调用使用get_object_or_404的方法来调用模型“ LifePost”,然后它显示相关文章的所有注释,但不显示文章数据(仅显示其字段)
models.py
class Comment(models.Model):
post = models.ForeignKey(LifePost, on_delete=models.CASCADE, related_name='comments')
name = models.CharField(max_length=100)
email = models.EmailField()
body = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
class Meta:
ordering = ['created_on']
def __str__(self):
return 'Comment {} by {}'.format(self.body, self.name)
views.py
def life_detail(request, slug):
template_name = 'life_detail.html'
post = get_object_or_404(LifePost, slug=slug)
comments = post.comments.filter(active=True)
new_comment = None
if request.method == 'POST':
comment_form = CommentForm(data=request.POST)
if comment_form.is_valid():
new_comment = comment_form.save(commit=False)
new_comment.post = post
new_comment.save()
else:
comment_form = CommentForm()
return render(request, template_name, {'post': post,
'comments': comments,
'new_comment': new_comment,
'comment_form': comment_form})
urls.py
path('life/<slug:slug>/', views.life_detail, name='life_detail'),
(NOT IN USE, but works and show the article correctly)
#path('life/<slug:slug>/', views.LifeDetail.as_view(), name='life_detail'),
我没有收到任何错误消息,并且也没有失败,它显示了与特定文章相关的正确注释。除非我直接调用模型(然后我没有收到评论),否则它不会显示文章内容。
有人可以告诉我我在做什么错吗?