Как сделать легкий запрос для отношения многих ко многим в Google Apps Engine? - PullRequest
1 голос
/ 09 октября 2010

Как сделать легкий запрос для отношения многих ко многим?

У пользователя много списков

ListUser - это модель, которая связывает их

В настоящее время я делаю так, но есть много запросов get, чтобы получить все эти данные.

lists = []
for list in user.lists:
    lists.append(list.list)

Теперь я получил это:

list_users = user.lists.fetch(1000)
# problem is here: "list.list" will retrive data from database, but I just want that list's key, how to do?
list_keys = [list.list for list in list_users]
lists = List.get_by_key_name(list_keys)

1 Ответ

0 голосов
/ 09 октября 2010

Вы должны использовать get_value_for_datastore .

list_keys = [ListUser.list.get_value_for_datastore(list_user)
              for list_user in list_users]
lists = db.get(list_keys)

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

...