使用python返回extjs treepan的json数据

2024-10-02 06:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在extjs4.2中使用python(django),但现在不知道如何返回extjs treepanel的json格式数据,如下所示:

[{
    "text":"A",
    "id": 1,
    "leaf":false,
    "parentId":0,
    "root":4,
    "children": [{
        "text":"A_1",
        "id":2,
        "leaf":false,
        "parentId":1,
        "root":3,
        "children": [{
            "id":7,
            "leaf":true,
            "parentId":2,
            "root":3,
            "text":"A_1_1",
            "children":[]
        }]
    }]
}]

帮帮我,谢谢。在


Tags: 数据djangotextidjsonfalsetrue格式
1条回答
网友
1楼 · 发布于 2024-10-02 06:29:27

树的结构非常容易理解: 它是一个嵌套的节点列表,其中每个节点的子属性都是它自己的树。 可以这样表示:

class Node(object):
    def __init__(self, id, text, root='', parent=None):
        self.text = text
        self.id = id
        self.root = root
        self.parent = parent
        self.children = []

    def append_child(self, node):
        if node not in self.children:
            node.parent = self
            self.children.append(node)

    def remove_child(self, node):
        if node in self.children:
            node.parent = None
            self.children.remove(node)

    def parent_id(self):
        return self.parent.id if self.parent is not None else 0

    def is_leaf(self):
        return len(self.children) == 0

    def to_dict(self):
        children_dict = [child.to_dict() for child in self.children]
        return {
             "id": self.id,
             "root": self.root,
             "text": self.text,
             "leaf": self.is_leaf(),
             "parentId": self.parent_id(),
             "children": children_dict,
         }

    def to_json(self):
        return json.dumps(self.to_dict)

相关问题 更多 >

    热门问题