I have a tree structure in memory that I would like to render in HTML using a Django template.
class Node(): name = 'node name' children = []
There will be some object root that is a Node, and children is a list of Nodes. root will be passed in the content of the template.
I have found this one discussion of how this might be achieved, but the poster suggests this might not be good in a production environment.
Does anybody know of a better way?
I think the canonical answer is: ‘Don’t’.
What you should probably do instead is unravel the thing in your view code, so it’s just a matter of iterating over (in|de)dents in the template. I think I’d do it by appending indents and dedents to a list while recursing through the tree and then sending that ‘travelogue’ list to the template. (the template would then insert
<li>and</li>from that list, creating the recursive structure with ‘understanding’ it.)I’m also pretty sure recursively including template files is really a wrong way to do it…