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

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

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

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

class Test:
     pass

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

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

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

3 ответа

Решение

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

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

У вас может быть список ключей или вы можете дать объектам "Test" родитель, который является объектом вашего "модельного" класса

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

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