2017-09-29 12 views
0

bokehサーバーアプリケーションで現在のドキュメントを置き換えるにはどうすればよいですか?curdocの交換方法

私は以前の文書をjson_stringとして保存しました。私がしている場合

これはcurdoc()を正しく変更しているようですが、新しい文書はブラウザに表示されません。

答えて

0

回避策を見つけましたが、他の場所では、curdoc()全体を更新するのではなく、既存のレイアウトの子を更新することをお勧めします。

私はそれを行いましたが、json文字列に保存されたドキュメントからこれを行うには少し拡張する必要がありました。

私はインポート文書と現在の文書のことを仮定して(それ以外の場合は、モデルが別の文書に属していると文句を言います)の代わりに)(curdocにインポートドキュメントからすべてのモデルのdocument属性を切り替える

を持っていましたどちらもルートが1つしかありません:

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

関連する問題