2016-11-16 5 views
0

こんにちはweb2pyコミュニティ!web2py:動的に定義されたセッション変数

私は現在、すべてのMODEL_IDによって識別されモデルを名前付き共通データクラスタ上で動作コンポーネント間の制御機構を開発しています。コンポーネント間の通信は、セッション変数を介して実現されます。

しかし、複数のモデルを同時に操作するオプションが必要なので、各モデルで使用するセッション変数を区別する必要があります。

この目的のために、異なるセッション変数をmodel_idで一意の識別子として補足したいと思います。

このようなセッション変数を読み取ることは簡単な部分です。

current_action = eval('session.manage_action_%s' % model_id) 

しかし、そのセッション変数に新しい値を書き込むことはできません。次のように今までの私のソリューションは、次のとおりです。

vars()['session.manage_action_%s' % model_id] = new_action 

これだけローカル変数 session.manage_action_5(または何MODEL_IDの値)を生成します。しかし、それは実際の、再利用可能で読みやすいセッション変数ではありません。

したがって、私の質問は:

どのように私は、実行時に読み込む変数値に応じて動的に定義されたセッション変数を生成することができますか?

そのためのソリューションを持っているのは素晴らしいだろうので、事前に任意のサポートのおかげで、...

敬具、 クレメンス

答えて

1

sessionオブジェクトは、辞書のようなオブジェクトであります

session['manage_action_%s' % model_id] = new_action 
current_action = session['manage_action_%s' % model_id] 

か::

ので、あなたは、動的に生成されたキーのための辞書の構文を使用することができます
session.update(**{'manage_action_%s' % model_id: new_action}) 
current_action = session.get('manage_action_%s' % model_id) 
+0

いつもの答えは解決策です...ありがとう、アンソニー! – Clemens

関連する問題