Google App Engine: сохранение списка объектов?

Мне нужно сохранить в моей модели список объектов из определенного класса в хранилище данных.

Есть ли простой способ заархивировать это с помощью ListProperty и пользовательских свойств, не вдаваясь в данные маринованных/простых двоичных объектов?

Я просто хочу что-то вроде этого:

class Test:
     pass

class model(db.Model):
     list = db.ListProperty(Test)

Глядя на документацию GAE, я не могу сказать, невозможно ли это в текущей версии или нет.

Я пытался избежать маринования, потому что оно медленное и имеет ограничения по размеру.


person fabiopedrosa    schedule 19.08.2009    source источник
comment
спасибо за подтверждение моей оценки. просто хочу, чтобы я оказался неправ.   -  person fabiopedrosa    schedule 21.08.2009


Ответы (3)


Непосредственно в хранилище данных можно хранить только ограниченный набор типов. Чтобы хранить свои собственные типы, вам нужно каким-то образом преобразовать их в один из принятых типов — одним из распространенных подходов является травление, как и сериализация в виде JSON.

Ограничение размера не является уникальным для травления — 1 МБ — это самый большой объект, который вы можете вставить, независимо от полей и типов.

person Nick Johnson    schedule 20.08.2009

Вы можете сохранить свои тестовые объекты непосредственно в хранилище данных, создав тестовую модель/тип объекта. В противном случае вам придется как-то сериализовать их (используя что-то вроде рассола или json)

person Peter Recore    schedule 20.08.2009

У вас может быть список ключей, или вы можете дать объектам «Тест» родителя, который является объектом вашего класса «модель».

person Drew LeSueur    schedule 18.09.2009