1

カスタム コメント エンジンを作成しようとしていますが、ネストされたコメントを表示する方法がわかりません。「返信」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 ループをどのように構成しても、それを機能させる方法がわかりません。ありがとう

4

1 に答える 1

1

ではなく、エンティティを比較してみてくださいpk:

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