为什么没有显示对评论的回复?Python Django



我正在尝试添加一些功能,允许回复评论并在评论下方显示回复,但在尝试了所有操作后,我无法看到正在显示对评论的回复。没有显示任何错误,所以我真的无法弄清楚。我猜模板中有什么不正确的地方?请查找以下代码。希望这就是我所需要的帮助。

模型:评论模型;回复模型

class Comment(models.Model):
"""comments for Post model"""
comment_post = models.ForeignKey(Post, on_delete=models.CASCADE,
related_name='comment_for_post', null=True, default='')
comment_text = models.TextField(null=True)
date_posted = models.DateTimeField(auto_now=True)
def get_absolute_url(self):
"""Reverse the Comment to the url once action
has been taken with primary key to direct back to details page"""
return reverse('posts:post_details', kwargs={'pk': self.pk})
def __str__(self):
return self.comment_text

class Reply(models.Model):
"""add reply to commnets"""
reply_comment = models.ForeignKey(
Comment, on_delete=models.CASCADE, null=True, default='', related_name='comment_reply')
reply_text = models.TextField()
date_posted = models.DateTimeField(auto_now=True)
def __str__(self):
return self.reply_text

视图:回复评论视图

@login_required
def reply_to_comment(request, pk):
comment = get_object_or_404(models.Comment, pk=pk)

if request.method == 'POST':
form = forms.ReplyCommentForm(request.POST)

if form.is_valid():
reply = form.save(commit=False)
reply.reply_comment = comment
reply.save()
return redirect('posts:post_details', pk=comment.pk)
else:
form = forms.ReplyCommentForm()
return render(request, 'posts/reply_comment_form.html', context={'form': form})

URLS:

urlpatterns = [
path('post_list/', views.PostListView.as_view(), name='post_list'),
path('user/<str:username>/', views.UserPostListView.as_view(), name='user_posts'),
path('create/', views.PostCreateView.as_view(), name='create'),
path('details/<int:pk>/', views.PostDetailView.as_view(), name='post_details'),
path('delete/<int:pk>/', views.PostDeleteView.as_view(), name='post_delete'),
path('update/<int:pk>/', views.PostUpdateView.as_view(), name='post_update'),
path('<str:category>/', views.CategoryPostListView.as_view(),
name='category_posts'),
path('posts/<int:pk>/comment', views.add_comment_to_post,
name='post_comment_list'),
path('delete_comment/<int:pk>/',
views.CommentDeleteView.as_view(), name='delete_comment'),
path('comment/<int:pk>/reply/', views.reply_to_comment, name='reply'),

模板:

<div class='container'>
{% for reply in comment.comment_reply.all %}
<br>
{% if  object.author == user %}
<div class="">
<ul>
<li>
<p >{{reply.reply_text}}</p>
<p class='text-capitalize'>From {{user.username}} on {{comment.date_posted|date:'d-M-y'}}.</p>
</li>
</ul>
</div>
{%else %}
<div class="">
<ul>
<li>
<p >{{reply.reply_text|safe}}</p>
<p class='text-capitalize'>From {{user.username}} on {{comment.date_posted|date:'d-M-y'}}.</p>
</li>
</ul>
{% endif %}
{% endfor %}
</div>

尝试添加以下代码:

context={'form': form, 'comment': comment} 

最新更新