def find_child(father_comment, space=0):
# 对father_comment循环处理
html = ''
for father in father_comment:
# 先打印father
html += "<li class='comment-item'><span class='nickname'>" + father.name + "</span>" + "<time class='submit-date'>" + str(
father.created_time.strftime('%Y-%m-%d %H:%M:%S')) + "<div class='text'>" + father.text + '</div></li>'
# 再判断如果father下有子节点的话,递归打印子节点
# 查出father的所有直接子节点
children = father.p_comment.all()
if children:
# 存在直接子节点,递归打印子节点
html += find_child(children, space+5)
return html
@register.simple_tag
def comment_tree(comment_list):
# 从comment_list中筛选出父节点
father_comment = [comment for comment in comment_list if comment.parent_comment is None]
# 生成所有父节点下的子节点
html = ""
html += find_child(father_comment)
return mark_safe(html)
层级评论的简洁实现
最新推荐文章于 2022-06-25 22:10:40 发布