The template will be rendered as nested lists, as shown in the following screenshot:
The {% recursetree %} block template tag takes QuerySet of the categories and renders the list using the template content nested within the tag. There are two special variables used here:
- The node variable is an instance of the Category model whose fields or methods can be used to add specific CSS classes or HTML5 data-* attributes for JavaScript, such as {{ node.get_descendent_count }}, {{ node.level }}, or {{ node.is_root }}.
- Secondly, we have a children variable that defines where the rendered child nodes of the current category will be placed.