Тип данных карты для Python Google App Engine - PullRequest
0 голосов
/ 05 апреля 2011

Я хотел бы иметь тип данных карты для одного из моих типов сущностей в моем приложении Python для Google App Engine. Я думаю, что мне по сути нужен тип данных python dict, где я могу создать список отображений ключ-значение. Я не вижу очевидного способа сделать это с помощью предоставленных типов данных в движке приложения.

Причина, по которой я хотел бы сделать это, заключается в том, что у меня есть сущность «Пользователь», и я хотел бы отследить в этом пользователе сопоставление lessonIds со значениями, которые представляют статус этого пользователя с определенным идентификатором урока. Я хотел бы сделать это, не создавая совершенно новую сущность, которая могла бы называться UserLessonStatus и иметь ссылку на пользователя и запрашивать ее, поскольку я часто хочу перебирать все состояния урока. Может быть, это лучше сделать таким образом, и в этом случае я буду признателен за мнение, что это так, как это лучше всего сделать. В противном случае, если кто-то знает хороший способ создания сопоставления в самой сущности моего пользователя, это было бы здорово.

Одним из решений, которое я рассмотрел, является использование двух ListProperties вместе, то есть при добавлении объекта добавьте ключ и значение в каждый список; при поиске найдите индекс строки в одном списке и ссылку, используя этот индекс в другом; при удалении найдите индекс в одном, используйте его для удаления из каждого и т. д.

1 Ответ

1 голос
/ 05 апреля 2011

Возможно, вам лучше использовать другой вид, как вы предлагаете. Если вы хотите сохранить все это в одном объекте, у вас есть несколько вариантов - параллельные списки, как вы предлагаете, являются одним из вариантов. Вы также можете просто выбрать словарь Python, предполагая, что вы не хотите запрашивать его.

Возможно, вы захотите проверить проект ndb , который поддерживает вложенные объекты, что также является жизнеспособным решением.

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