Lors de l'utilisation de la requête ancêtre avec Google Apps Engine, le parent n'a pas besoin d'utiliser une entité existante

J'ai dit ce que je voulais dire dans le titre. Fortement cohérent est appliqué à l'aide d'une requête d'ancêtre.

from google.appengine.ext import ndb

class Customer(ndb.Model):
    name = ndb.StringProperty()

class Purchase(ndb.Model):
   price = ndb.IntegerProperty()

customer_entity = Customer(name='me', id='[email protected]')
purchase1 = Purchase(parent=customer_entity.key, price=100)
purchase2 = Purchase(parent=customer_entity.key, price=200)
purchase1.put()
purchase2.put()
print Purchase.query(ancestor=customer_entity.key).fetch()
#[Purchase(key=Key('Customer', '[email protected]', 'Purchase', 5414888608366592), price=200), Purchase(key=Key('Customer', '[email protected]', 'Purchase', 5977838561787904), price=100)]

key = ndb.Key('user', '[email protected]')
purchase3 = Purchase(parent=key, price=100)
purchase4 = Purchase(parent=key, price=200)
purchase3.put()
purchase4.put()
print Purchase.query(ancestor=key).fetch()
#[Purchase(key=Key('user', '[email protected]', 'Purchase', 4711201166589952), price=200), Purchase(key=Key('user', '[email protected]', 'Purchase', 6540788515209216), price=100)]

Recommended Posts

Lors de l'utilisation de la requête ancêtre avec Google Apps Engine, le parent n'a pas besoin d'utiliser une entité existante
Comment ne pas charger d'images lors de l'utilisation de PhantomJS avec Selenium
Comment écrire la mise à jour de la banque de données en asynchrone avec Google Apps Engine
Lorsque vous souhaitez l'utiliser tel quel lorsque vous l'utilisez avec lambda memo
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python