如何在 Django 中创建评论树

问题描述

我需要一个评论系统,以便可以对任何评论回复评论

我知道如何编写模型和视图,我唯一的问题是在模板中显示它们

比如,可能有一组评论是这样的:

comment
    comment
        comment
        comment
    comment
    comment
        comment
            comment
comment
    comment

如何在模板中显示此结构?

解决方法

您的 Comment 模型应该有一个 parent 字段,该字段引用另一个评论(自我关系)。
它将是这样的,将其添加到您的 Comment 模型中:

parent = models.ForeignKey('self',null=True,blank=True,related_name='replies')  

现在您有了回复,甚至您的回复也可以成为另一条评论的父级。
在您的模板中:

{% for replay in comment.replies.all %}
    <p class="info">{{ replay.user }} | {{ replay.date }}</p>
    <li>{{ replay.text }}</li>
{% endfor %}  

请注意,字段名称只是示例