我正在尝试制作一个自定义评论引擎,但我不知道如何显示嵌套评论。我使用“回复”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...
View .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 也返回一个 id,它们都匹配 41
{% for comment in comments %}
{{comment.content}}
{% for child in children %}
{%if child.reply == comment.pk %}
{{child.content}}
{% endif %}
{% endfor %}
{% endfor %}
无论我如何构造 for 和 if 循环,我都不知道如何让它工作。谢谢
尝试比较实体,而不是pk
:
{% if child.reply == comment %}
我是一名优秀的程序员,十分优秀!