Google App Engine: сохранение списка объектов?
Мне нужно сохранить в моей модели список объектов из определенного класса в хранилище данных.
Есть ли какой-нибудь простой способ заархивировать это с помощью ListProperty и пользовательских свойств, не вдаваясь в данные BLOB-объектов маринованных / простых файлов?
Я просто хочу что-то вроде этого:
class Test:
pass
class model(db.Model):
list = db.ListProperty(Test)
Глядя на документацию GAE, я не могу точно сказать, невозможно ли это с текущей версией или нет.
Я пытался избежать засолки, потому что он медленный и имеет ограничения по размеру.
3 ответа
Вы можете хранить только ограниченный набор типов непосредственно в хранилище данных. Чтобы хранить ваши собственные типы, вам нужно каким-то образом преобразовать их в один из принятых типов - выборка является одним из распространенных подходов, так же как и сериализация в JSON.
Ограничение размера не уникально для травления - 1 МБ - это самый большой объект, который вы можете вставить независимо от полей и типов.
У вас может быть список ключей или вы можете дать объектам "Test" родитель, который является объектом вашего "модельного" класса
Вы можете сохранить ваши тестовые объекты непосредственно в хранилище данных, создав тестовую модель / тип сущности. В противном случае вам придется как-то их сериализовать (используя что-то вроде pickle или json)