Использование mptt с Jstree в Django
В Jstree извлекается только первый элемент без его дочерних элементов, а остальные корневые родительские элементы находятся вне Jstree
Шаблон:
{% load mptt_tags %}
<div class='component'>
{% recursetree components %}
<div id='jstree'>
<ul>
<li id="child_node_1">
<a>{{ node.name }}</a>
{% if not node.is_leaf_node %}
<ul class="children">
<li> <a>{{ children }} </a></li>
</ul>
{% endif %}
</li>
</ul>
</div>
{% endrecursetree %}
</div>
модель:
class Component(MPTTModel):
name = models.CharField(max_length=100)
manufacturer = models.CharField(max_length=100)
model = models.CharField(max_length=100)
serial_number = models.CharField(max_length=255)
price = models.IntegerField()
note = models.TextField()
parent = TreeForeignKey("self", verbose_name=(
"Parent Component"), blank=True, null=True, related_name='children', on_delete=models.CASCADE)
def __str__(self):
return f"{self.id}, {self.name}"