2009-05-17 10 views
2

私はAppEngineモデルクラスを構築しています。私はタプルの簡単なリストが必要になります。AppEngineの非データストアタイプのリスト?

class MyTuple(object): 
    field1 = "string" 
    field2 = 3 

class MyModel(db.Model): 
    the_list = db.ListProperty(MyTuple) 

AppEngineのは、有効なフィールドとしてMyTupleを受け付けないので、これは、動作しません。私は考えることができる

ソリューション:

  1. MyTupleがdb.Modelを拡張してください。しかし、リストのすべてのエントリが専用のMyTupleテーブルに格納されることを意味しませんか?

  2. MyTupleの「シリアル化された」形式の文字列のリストにします。コードの解析(シリアライズ解除)を追加します。ヤック

  3. 2つのリスト(文字列の1つ、intの1つ)を維持します。もう一つの雄鶏。

その他の解決方法はありますか?

答えて

1

app-engine-patchには、FakeModelListPropertyとFakeModel(両方ともragendja.dbutilsからインポート)があります。 MyTupleをFakeModelから派生させ、fields =( 'field1'、 'field2')を設定します。これらのフィールドはリストに保存されると自動的にJSONに変換されるため、テキストエリアで手動で編集することができます。もちろん、これはプリミティブ型(文字列、整数など)に対してのみ機能します。これで十分でない場合は、ソースを見てください。

http://code.google.com/p/app-engine-patch/

関連する問題