Список типов хранилищ данных в AppEngine?

Я создаю класс модели 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. Поддерживайте два списка (один из строк, один из целых чисел). Еще одна хуйня.

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


person M. Elkstein    schedule 17.05.2009    source источник


Ответы (1)


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

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

person Community    schedule 17.05.2009