カスタム コメント エンジンを作成しようとしていますが、ネストされたコメントを表示する方法がわかりません。「返信」ForeignKey を使用して、参照しているコメントを追跡します。そして、レベル フィールドを使用して、それがどのような「レベル」コメントであるかを確認しています。
models.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 ループをどのように構成しても、それを機能させる方法がわかりません。ありがとう