Django rest framework. Отображение вложенности комментариев до 2-го уровня

Cтолкнулся с задачей, где вложенность комментариев отображается до 2-го уровня. На бэке комментарии хранятся без ограничения вложенности (т.е. у родителя могут быть внуки, правнуки и т.д.). Однако на фронте надо отображать комментарии до 2-го уровня:

Пример с YouTube

Подскажите пожалуйста как это реализовать. Следует ли возвращать данные с бэка определенным образом или же делать это на фронте? Моделька Комментария:

class Comment(MPTTModel, TimestampMixin):
  author = models.ForeignKey(Student, on_delete=models.CASCADE, related_name="comments")
  text = models.CharField(max_length=300)
  lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE, related_name='comments')
  parent = TreeForeignKey('self', on_delete=models.CASCADE, blank=True, null=True, related_name="children")
  question = models.ForeignKey('test_.Question', on_delete=models.CASCADE, blank=True, null=True, related_name="comments")

Json данные:

{
"result": {
    "count": 15,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "author": {
                "id": 1,
                "first_name": "Bernar",
                "avatar_thumbnail": null
            },
            "text": "comment 1",
            "parent": null,
            "lesson": 1,
            "children": [
            {
                    "id": 2,
                    "author": {
                        "id": 2,
                        "first_name": "Bertran",
                        "avatar_thumbnail": null
                    },
                    "text": "comment 2",
                    "parent": 1,
                    "lesson": 1,
                    "children": [],
                    "question": null,
                    "upvotes": 0,
                    "is_upvoted": false,
                    "created_at": "2020-08-06T11:45:56.195252Z"
                }],
            "question": {
                "id": 1,
                "text": "Какие из следующих выражении, тригонометрические?",
                "description": null,
                "order": 1,
                "type": "RADIO",
                "task": 1,
                "choices": []
            },
        ]
    },
    "code": 0
}

Сериализатор:

class RecursiveSerializer(serializers.Serializer):
"""
Serializer for children comments
"""

def to_representation(self, value):
    serializer = self.parent.parent.__class__(value, context=self.context)
    return serializer.data


class CommentSerializer(serializers.ModelSerializer):
"""
Serializer for comment
"""
children = RecursiveSerializer(many=True, read_only=True)

class Meta:
    model = Comment
    fields = ('id', 'author', 'text', 'parent', 'lesson', 'children', 'question', 'created_at')
    read_only_fields = ('author', 'lesson',)

def to_representation(self, instance):
    representation = super(CommentSerializer, self).to_representation(instance)
    representation['author'] = ShortStudentSerializer(instance.author).data
    representation['question'] = QuestionSerializer(instance.question).data
    return representation

Ответы (0 шт):