механизм приложений Python Запрос модели для моделей в одной группе - PullRequest
3 голосов
/ 26 апреля 2011

У меня есть транзакционные группы сущностей типа db.Model, для которых определен родитель. Я хочу запросить хранилище данных, чтобы вернуть только модели, которые находятся в той же группе. В настоящее время я опрашиваю все объекты «Kind», а затем удаляю те, у которых нет того же корневого объекта.

Есть ли более чистый способ сделать это - я не вижу одного в SDK.

например:

from google.appengine.ext import db

class ParentObject(db.Model):
  ....


class ChildObject(db.Model):
  ....


parent1 = ParentObject()
parent2 = ParentObject()
child1 = ChildObject(parent=parent1)
child2 = ChildObject(parent=parent2)
child3 = ChildObject(parent=parent1)

Я хочу выполнить запрос, который возвращает child1 и child3, потому что у них один и тот же родитель.

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Я думаю, это то, что вы ищете.

get_chlids=ChildObject.all().ancestor(parent1)

Чтобы узнать больше о моделировании в appengine. Вы можете посмотреть здесь

1 голос
/ 26 апреля 2011
class TestFamilyTree(unittest.TestCase):

def test_family_tree(self):
  parent1 = ParentObject()
  parent1.put()
  parent2 = ParentObject()
  parent2.put()
  child1 = ChildObject(parent=parent1)
  child1.put()
  child2 = ChildObject(parent=parent2)
  child2.put()
  child3 = ChildObject(parent=parent1)
  child3.put()
  query = ChildObject.all()
  query.ancestor(child1.parent())
  siblings = query.fetch(100)
  self.assertEqual(len(siblings),2) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...