sea*_*000 9 django django-mptt
我想使用JavaScript InfoVis Tooljit(http://thejit.org)在django中渲染一个mptt节点的树.如何在django中创建所需的json结构(请参阅http://thejit.org/static/v20/Jit/Examples/Spacetree/example1.code.html以获取示例)?
谢谢
如果您使用django-mptt的模板功能来生成JSON数据,您应该能够执行以下操作:
var json =    
{% recursetree nodes %}
{
    id: "{{ node.id }}",   
    name: "{{ node.name }}",   
    data: {},   
    children: [{{ children }}]
},
{% endrecursetree %}
Run Code Online (Sandbox Code Playgroud)
children标签非常棒,基本上为节点的每个子节点调用recursetree.然而,使用此解决方案在逗号周围产生了一点混乱,因为mptt示例是在列表元素周围,这些事情不是问题.
稍微大一点的代码解决了这个问题:
var json =    
{
    id: "{{ root.id }}",   
    name: "{{ root.name }}",   
    data: {},   
    children: [{% recursetree root.children %}
    {
        id: "{{ node.id }}",   
        name: "{{ node.name }}",   
        data: {},   
        children: [{{ children }}]
    }
    {% endrecursetree %}]
}
Run Code Online (Sandbox Code Playgroud)
通过区分根节点(假设只有一个)不存在于数组中而是分配给变量,与生活在另一个节点的子节点内的其他节点相比,var x = y,避免了问题.
children: [x,y,z,]使用尾随逗号仍然存在问题.如果最后一个逗号是提高错误,那么在已调用模板认为你总是可以做一个快速的字符串替换替换,]用]
或者你可以{{ children }}用某种方式改变mptt 的调用以获取连接字符串,但这将涉及更多的工作.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5514 次  |  
        
|   最近记录:  |