1

我正在尝试制作自定义评论引擎,但我不知道如何显示嵌套评论。我使用“回复”ForeignKey 来跟踪它所指的评论。我正在使用一个级别字段来查看它是什么“级别”评论。

模型.py:

class Post(models.Model)
    name     = models.CharField()
    text     = models.TextFiled()

class Comment(models.Model)
    o_post   = models.ForeignKey(Post)
    reply    = models.ForeignKey('self', blank=True, null=True)
    level    = models.IntegerField(default=1)
    #others like content,author, created etc...

视图.py

def PostComments(request,postpk):
    post     = Post.objects.get(pk=postpk)
    comments = Comment.objects.filter(o_post=post).order_by('-created')
    children = Comment.objects.filter(o_post=post).filter(level__gte=2)
    context  = {'comments':comments,'post':post,'children':children}
    return render_response(stuff)

这是我尝试显示所有内容的方法。所有 1 级评论都是可见的。child.reply 返回一个 id,comment.pk 也是如此,它们都匹配 41

{% for comment in comments %}
    {{comment.content}}
    {% for child in children %}
        {%if child.reply == comment.pk %}
            {{child.content}}
        {% endif %}
    {% endfor %}
{% endfor %}

无论我如何构建 for 和 if 循环,我都无法弄清楚如何让它工作。谢谢

4

1 回答 1

1

尝试比较实体,而不是pk

{% if child.reply == comment %}
于 2013-08-22T23:14:55.487 回答