I have a Deviz
model that inherits from MPTTmodel
. I populated the database with data but can't get to show the children.
The tree should be like this:
Chapter 1
-Subchapter 1
--SubSubchapter 1
---Article 1
---Article 2
---Article 3
Chapter 2
-Subsubchapter1
--Article 1
--Article 2
In the template, it only displays the Chapters.
When changing object_list
to object_list.get_descendants
, it does not display the first level tree (Chapters)
models.py
class Lucrare(models.Model):
name = models.CharField(default='',max_length=100,verbose_name="Denumire")
class Deviz(MPTTModel):
lucrare = models.ForeignKey(Lucrare, on_delete=models.CASCADE,default='',null=True,related_name="deviz")
parent = TreeForeignKey('self', on_delete=models.CASCADE,null=True,blank=True,related_name='children')
cod = models.CharField(default='', max_length=20,verbose_name="Cod")
norma = models.CharField(default='',max_length=20,verbose_name="Norma")
denumire = models.TextField(default='',verbose_name="Denumire")
um_articol = models.TextField(default='',verbose_name="Um")
oferta = models.FloatField(default=0,verbose_name="Cant Oferta")
buget = models.FloatField(default=0)
cost = models.FloatField(default=0)
def __str__(self):
return self.denumire
class Meta:
verbose_name = 'Deviz'
verbose_name_plural = 'Devize'
views.py
class LucrareDetail(LoginRequiredMixin, DetailView):
template_name = "proiecte/lucrare_detail.html"
context_object_name = "lucrari"
model = Lucrare
template.html
{% recursetree object_list %}
<li>
{{ node.denumire }}
{% if not node.is_leaf_node %}
<ul class="children">
{{ children }}
</ul>
{% endif %}
</li>
{% endrecursetree %}