Django 如何在嵌套评论系统中显示三级评论

问题描述

我在搭建一个嵌套的Django评论系统。思路很简单,所有属于同一个根注释的子注释都会嵌套在根注释下,不管子注释属于哪一层或哪一层。

Root comment
  A reply to Root
  B reply to A
  C reply to B
  D reply to C
  E reply to A

model.py:

class Comment(models.Model):
    """

    评论表

    """
    nid = models.AutoField(primary_key=True)
    news = models.ForeignKey(verbose_name='评论文章',to='News',to_field='id',on_delete=models.CASCADE)
    user = models.ForeignKey(verbose_name='评论者',to='User',on_delete=models.CASCADE)
    content = models.CharField(verbose_name='评论内容',max_length=255)
    create_time = models.DateTimeField(verbose_name='创建时间',auto_Now_add=True)
    parent_comment = models.ForeignKey('self',null=True,on_delete=models.CASCADE)

    def __str__(self):
        return self.content

view.py:

def newsDetailView(request,news_pk):
   ......other code......
    comments_list = Comment.objects.filter(news_id=news_pk).order_by('-nid')
    return render(request,"news/pages/index-inner.html",{
        'comments_list': comments_list,})

模板:

    {% for comment in comments_list %} 
    
    {% if comment.comment_set.all and not comment.parent_comment %}
            
    <div class='root-sub-group'>
    <div class="root-comment" >
    {{comment.content}}
    </div>
    
   {% for reply in comment.comment_set.all %}
    
    <div class="sub-comment">
    {{reply.content}}
    <div/>
    
    {% endfor %}
            
</div>
    
    {% endif %}
    
    
    <!--Now if the comments doesn't has both sub comments and parent comment then it should be a single root comment-->
    
    {% if not comment.comment_set.all and not comment.parent_comment %}
    <div class="single-root" >
    {{comment.content}}
    </div>
    
    
    {% endif %}
    
    {% endfor %}
    

我的问题是它只显示第二级的评论,第三级不显示

Root comment
  A reply to Root
  F reply to Root

有朋友可以帮忙吗?我知道这有点难。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)