Я кодирую сайт социальной сети, используя Django
. есть модель для комментирования моих статей
class ArticleComment(models.Model):
parent = models.ForeignKey('self',
null=True,
blank=True,
related_name='replies',
on_delete=models.CASCADE)
article = models.ForeignKey(
Article,
on_delete=models.CASCADE,
related_name="comments")
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
# sort comments in chronological order by default
ordering = ('created_at',)
def __str__(self):
return 'Comment by {}'.format(self.user.username)
Теперь я пытаюсь отобразить свои резьбовые комментарии в своем шаблоне. Но я не могу понять, как сделать мои подкомментарии на том же уровне. Вот как я закончил, но это означает только первый уровень ответов.
<ul class="comments-list style-3" id="articleComments">
{% for comment in comments %}
<li class="comment-item has-children moreList">
<div class="comments-content">
<p>{{comment.content}}</p>
//toggle answer reply form
<a data-toggle="collapse" href="#{{comment.id}}"class="reply" role="button" aria-expanded="false" aria-controls="collapseExample">{% trans 'Reply' %}</a>
<a href="#" class="report">Report</a>
<div>
<form id="{{comment.id}}" class="collapse" method="post">
<br>
{% csrf_token %}
<input type="hidden" name="parent" value="{{comment.id}}">
<div class="crumina-module crumina-heading with-title-decoration">
<h5 class="heading-title">{% trans 'Write a Reply' %}</h5>
</div>
<div class="row">
<div class="col col-6 col-xl-6 col-lg-6 col-md-6 col-sm-6">
<div class="form-group label-floating is-empty">
<label class="control-label">{% trans 'Reply Comment' %}</label>
<textarea class="form-control" placeholder="" name="content"></textarea>
</div>
<button class="btn btn-primary btn-lg full-width" type="Submit">{% trans 'Post your Reply' %}</button>
</div>
</div>
</form>
</div>
</div>
//try to loop comments with parent
{% if parent %}
<ul class="children first-children-level">
{% for reply in comment.replies.all %}
<li class="comment-item">
<div class="comments-content">
<p>{{reply.content}}</p>
<a href="#" class="report">Report</a>
</div>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
Можете ли вы подсказать мне, как пройти l oop через подуровни? Спасибо