Может ли класс быть 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.

Другие вопросы по тегам