Список типов хранилищ данных в AppEngine? - PullRequest
2 голосов
/ 17 мая 2009

Я строю класс модели AppEngine. Мне нужен простой список кортежей:

class MyTuple(object):
  field1 = "string"
  field2 = 3

class MyModel(db.Model):
  the_list = db.ListProperty(MyTuple)

Это не работает, поскольку AppEngine не принимает MyTuple в качестве допустимого поля.

Решения, которые я могу придумать:

  1. Расширение MyTuple для db.Model. Но не значит ли это, что каждая запись в списке будет храниться в отдельной таблице MyTuple?

  2. Создайте список строк, которые представляют собой «сериализованную» форму MyTuple; добавить разбор (десериализацию) кода. Тьфу.

  3. Ведение двух списков (один из строк, один из целых). Еще один гад.

Любое другое решение, которое мне не хватает?

1 Ответ

1 голос
/ 17 мая 2009

В app-engine-patch есть FakeModelListProperty и FakeModel (импортируйте оба из ragendja.dbutils). Извлеките MyTuple из FakeModel и установите fields = ('field1', 'field2'). Эти поля будут автоматически преобразованы в JSON при сохранении в списке, поэтому вы можете вручную редактировать их в текстовой области. Конечно, это работает только для примитивных типов (строки, целые числа и т. Д.). Посмотрите на источник, если этого недостаточно.

http://code.google.com/p/app-engine-patch/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...