У кого-нибудь есть какие-нибудь четкие способы получить уникальный список предков сущностей конкретной модели?
Например, если есть класс A и класс B (родитель = A), можно ли найти все A, которые в настоящее время имеют B
Закончилось одним лайнером;
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
Самый простой метод, который я могу придумать, - это сделать запрос 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)