Google エンドポイントを使用して、メッセージから直接別のエンティティへの参照を持つエンティティを自動的に挿入できるようにしたいと考えています。
メッセージで送信するReferencePropertyには、 のエンコードされた文字列値を使用しますKey。メッセージを送信する場合は問題ありませんが、メッセージを受信してそのエンティティを作成する場合、エンコードされた文字列をパラメーターとしてコンストラクターに渡すことはできません。
たとえば、BaseModelそれ自体が継承する を継承する 2 つのクラスがあるとします。db.models
class TestModel2(models.BaseModel):
test_string = db.StringProperty(required=True)
class TestModel(models.BaseModel):
test2 = db.ReferenceProperty(TestModel2)
test2_id = property(models.BaseModel._get_attr_id_builder('test2'),
models.BaseModel._set_attr_id_builder('test2'))
そしてメッセージクラス
class TestModelMessage(messages.Message):
test2_id = messages.StringField(4)
Entity TestModelの を直接作成できるようにしたいTestModelMessage。
プロパティを使用して、別の方法で(エンティティからメッセージへ)それを行うことができました。db.modelsしかし、他の方法では、のコンストラクターが継承する属性のみを設定すると感じているため、機能しませんdb.Property。したがって、プロパティのセッターは呼び出されません...
どうすればこれを行うことができますか?
__init__inをオーバーライドすることを考えましたが、 of をBaseModel呼び出すと、おそらく.__init__db.modelsReferenceProperty