Django, цикл внутри дерева отцов и детей

Я пытаюсь перебрать древовидные отношения "отец-ребенок", где ребенок также может быть отцом, и вывести его детей. пока что мне удалось вывести только примитивного отца и детей (но я не могу понять, как вывести детей детей)

Вот модель :

class Component(models.Model):
    component_name = models.CharField(max_length=100)
    component_manufacturer = models.CharField(max_length=100)
    component_model = models.CharField(max_length=100)
    component_number = models.CharField(max_length=255)
    component_price = models.IntegerField()
    component_note = models.TextField()
    parent_component = models.ForeignKey("self", verbose_name=(
        "Parent Component"), blank=True, null=True, related_name='children', on_delete=models.CASCADE)
    is_child = models.BooleanField(default=False)

    def __str__(self):
        return f"{self.id}, {self.component_name}"

вид :

def index(request):
    f = Component.objects.all()
    context = {
        'f': f
    }
    return render(request, 'maintenance/index.html', context)

шаблон :

  <div class='component'>
      Components<ol>
      {%for f in f%}
      {%if f.is_child is False %}
      
             <li>  {{f.component_name}}</li>
             <ol>
         {% for f in f.children.all %}
           
              <li> {{f.component_name}}</li>
           
         
         {%endfor%}   
      </ol>
      {%endif%}   
      {%endfor%}
   </ol>
   </div>

Спасибо большое!

Вернуться на верх