Может ли класс быть Expando и Polymodel в Google App Engine?
Если я создаю класс PolyModel, например Person, могу ли я создать модель Expando под этой Polymodel? Например, класс Male(Person), который также был моделью Expando? Если так, то как?
Спасибо!
1 ответ
Цитата из документации PolyModel:
PolyModel не поддерживает динамические свойства, как Expando. Для Expando нет эквивалента PolyModel.
Однако есть способы обойти это, используя низкоуровневые API хранилища данных. Они должны хорошо работать даже с PolyModel
учебный класс. Но код не будет очень хорошим, и я не рекомендую его. У меня нет времени собрать пример сейчас, но, может быть, я сделаю это завтра, если никто не сделает этого.
А пока вы могли бы взглянуть на PolyModel
Класс, который я написал до того, как Google выпустил свой собственный (и да, тот факт, что оба имеют одно и то же имя - чистое совпадение =), это может вдохновить вас на то, как сделать свой собственный Expando
-поддерживающая версия, если вам не хватает других решений. Вот он: класс PolyModel и пример PolyModel.