Django Шаблон комментариев с резьбой - PullRequest
0 голосов
/ 11 февраля 2020

Я кодирую сайт социальной сети, используя 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 через подуровни? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...