Опрос уникальных предков моделей в Google App Engine DS - PullRequest
1 голос
/ 18 февраля 2011

У кого-нибудь есть какие-нибудь четкие способы получить уникальный список предков сущностей конкретной модели?

Например, если есть класс A и класс B (родитель = A), можно ли найти все A, которые в настоящее время имеют B

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Закончилось одним лайнером;

a_with_b = set([b.parent() for b in B.all(keys_only=True)]) #list comprehension

К вашему сведению, в Python 3 вы можете сделать

a_with_b = {b.parent() for b in B.all(keys_only=True)} #set comprehension
0 голосов
/ 19 февраля 2011

Самый простой метод, который я могу придумать, - это сделать запрос keys_only для B и сохранить их родительские ключи.Если у вас много Б, это будет боль в А.;)

all_b = B.all(keys_only=True)

a_with_b = []

for b in all_b:
    parent = b.key().parent()

    if not parent:
        continue

    if parent not in a_with_b:
        a_with_b.append(parent)
...