Django,如何在模板中显示对该评论的评论和回复

时间:2013-06-17 22:20:30

标签: django django-templates

我有一个注释表,它有一个Blog表的外键。此表用于对博客发表评论,并且可以对评论进行回复。为此,我使用了列parent,它将决定回复的评论。

现在的问题是,使用此表的对象,

comment_obj = comment.objects.filter(blog=blog_obj).order_by("created")

我没有得到所需的输出。我想知道如何显示评论以及每条评论下对该评论的回复。

Models.py:

class Comment(models.Model):
    user = models.ForeignKey(User_info)
    blog = models.ForeignKey(Blog)
    parent = models.ForeignKey('self', null=True)
    comment = models.CharField(max_length=500)
    status = models.CharField(max_length=1, default='A')
    created = models.DateTimeField(auto_now_add=True)

模板:

{% for comment in comment_obj %}
    <li>
        {{ comment.comment }} - {{ comment.created }}
        {% for reply in comment.Comment_set.all %}
        <ul>
            {{ reply.comment }} - {{ reply.created }}
        </ul>
       {% endfor %}
    </li>
    {% endfor %}

但这不起作用。请帮忙。我想这样做而不使用任何应用程序。

1 个答案:

答案 0 :(得分:4)

使用可选参数向related_name添加ForeignKey,以简化操作:

class comment(models.Model):
    user = models.ForeignKey(User_info)
    blog = models.ForeignKey(Blog, related_name='comments')
    parent = models.ForeignKey('self', null=True, related_name='replies')

模板:(假设blog_objBlog对象)

{% for comment in blog_obj.comments.all %}
    {{ comment.comment }}
    {% for reply in comment.replies.all %}
        {{ reply.comment }}
    {% endfor %}
{% endfor %}