2012-04-25 17 views
2

でエンティティを取得するためにget_by_id使用することはできません私は次のようなもので、現在のネームスペースの外に読みたい:はNDBは、名前空間

some_entity = MyModel.get_by_id(some_id_name, namespace='somenamespace') 

が、パラメータとして名前空間をget_by_id取ることはありません。私が取得:

TypeError: Unknown configuration option ('namespace') 

私が一緒に仕事をする事を得ている:

some_entity = ndb.Key(MyModel, some_id_name, namespace='somenamespace').get() 

だから今、私はちょうど文句んだけど、私は他の人がこのことから利益を得ることができる考え出し。 :)また、Guidoはこれを監視しているので、get_by_idに名前空間オプションを許可しない理由がありますか?

EDIT:This is now possible in App Engine 1.7.0.

+0

リリース: "1.8.3"と同じエラーがスローされます:( – peterretief

答えて

0

あなたはまず、名前空間を変更することができ、その後、あなたはエンティティが

from google.appengine.api import namespace_manager 

namespace_manager.set_namespace('thenamespace') 
MyModel.get_by_id(some_id_name) 
+1

これは名前空間をグローバルに設定し、他のdb呼び出しにも影響しますか? – iamgopal

+0

はい意志。名前空間を変更していて、それを元に戻すまではその名前空間にとどまります。 'namespace_manager.get_namespace()'を使って元の名前空間を変数に格納し、クエリが完了した後にその名前空間に戻すことができます。 – aschmid00

+0

そのスレッドは安全ですか? – crizCraig