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.models
ReferenceProperty