2009年2月 3日

Python | Django AMF 機能追加

Django AMFの機能追加。
・_amf_pre_serialize_handler() メソッド
・_amf_extra_return_attrs クラス変数

前者は、PythonクラスのインスタンスがAMFにシリアライズされる直前に、そのクラスに定義された _amf_pre_serialize_handler() メソッドが呼び出されるというもの。
PythonクラスとAS(Flash)クラスをマッピングしている場合で、ちょっとプロパティが違ったりする場合に使う。例えば、ASクラスでは配列プロパティだけど、Pythonクラスではコンマ区切りの文字列でデータを保持しているような場合に、このハンドラメソッドで文字列をリストに変換して対応できる。
まだ post_deserialize ハンドラはない。
最初はDjangoのシグナルで対応しようかと思ったけど、Djangoに依存してしまうのでやめた。

DjangoのモデルインスタンスをFlashに返す場合、モデルクラスでフィールドとして定義している変数しかシリアライズ対象にしかならないため、後から動的に追加する属性もAMFにシリアラズしたい場合に _amf_extra_return_attrs クラス変数にその属性名をセットしておく。

Posted by otsuka : 21:58 | Comment (0) | Trackback (0)
Comment









名前、アドレスを登録しますか?