如何更换curdoc

时间:2017-09-29 18:20:40

标签: bokeh

如何在散景服务器应用程序中替换当前文档?

我将之前的文档另存为json_string。如果我做

set_curdoc(Document.from_json_string(json_string))

这似乎正确地改变了curdoc(),但是新文档没有显示在浏览器中。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方法,其他地方建议更新现有布局的子代,而不是更新整个curdoc()。

我做到了,但是我必须从保存在json字符串中的文档中进行扩展。

我不得不将所有模型的document属性从导入的文档切换到curdoc()(否则它会抱怨模型属于另一个文档)

假设我导入的文档和当前文档都只有一个根:

new_doc = Document.from_json_string(json_string)

new_grid_models = collect_models(new_doc.roots[0])

for elem in new_grid_models:
    try:
        elem.document = curdoc()
    except AttributeError:
        elem._document = curdoc()

new_children = new_doc.roots[0].children
del new_doc

grid.children = new_children

之后,需要将python回调重新影响到相应的导入模型。

我在这里贴了一个示例应用: save_and_load app on Bitbucket