python + easyuitree实现

 前台:

<div id="lowediv" align="center">
        <ul id="trees" class="easyui-tree">
        </ul>
    </div> 

$('#trees').tree({
                url:‘',
                loadFilter: function(data){
                    if (data.d){
                        return data.d;
                    } else {
                        return data;
                    }
                }
            });

后台:

def tree_roledb(request):
    a=[]
    list_items = Roledb.objects.all()
    for p in list_items.values():
        a.append(p)
        print a

//先把取出的数据存入一个列表a

//调用递归
    alist = treeRecursive(a)
    b=json.dumps(alist)
    return HttpResponse(b)
def treeRecursive(data):

//判断循环次数为len(data)
    for s in range(len(data)):
        a = 0//记录for循环次数
        for i in data:
            type(data)
            a=a+1//当前第一次循环
            b = 0//判断是否存在子节点,存在赋值为1,不存在为0
            for j in data:
                if (i['id'] == j['parentId'])://当存在子节点时b=1退出当前for循环进入下一次循环
                    b= 1
                    print i['id']
                    continue
            if(b==0)://当b==0也就是i这条数据没有子节点时把它加入到父节点中
                for h in data:
                    if(h['id']==i['parentId'])://是否存在父节点
                        try:
                            h['children'].append(i)//如果当前的父节点存在children这个键,直接append(i)
                        except Exception,e:
                            h['children']=[]
                            h['children'].append(i)//如果不存在则把新建children键,此键类型为list,并把当前数据加入到父节点中
                        del data[a-1]//删除当前数据
    print data  
    return data

   //最后生成的data为easyui tree所需要的格式

posted on 2014-11-24 10:22  ChrisPaul  阅读(815)  评论(0编辑  收藏  举报