Why do you need a transaction for this operation? To create B objects that are children of some A use
a=A() a.put() # create the parent object bObjs = [B(parent=a, somestring=s) for s in somelist] db.put(bObjs) 2009/3/19 Anonymous Coderrr <[email protected]>: > > Hi, > > The documentation for entity-groups and transactions say that entities > must all be in the same eneity group for transaction operations to > work. But it does not specifically say how to put entities in the > same entity group, other than some mention of setting the same parent, > which it also does not say how to do. > > Maybe someone could show me specifically how to do this? > > Let's say I have: > > class A(db.Model): > bList = db.ListProperty(db.Key) > > class B(db.Model): > someString = db.StringProperty() > > > def tran(self, a, bList): > bKeys = put_each_list_item_return_keys_as_list(bList) # this > just calls put() on each item, returns keys > a.bList = bKeys > a.put() > > # the work > bLIst = createListofBs() > a = A() > db.run_in_transaction(tran, a, bList) > > If I run this, I get this error while the items in the bList are being > put: > > BadRequestError: Cannot operate on different entity groups in a > transaction: (kind=u'B', id=65L) and (kind=u'B', id=None). > > How do I get everything into one entity group so this transaction will > commit? > > Thanks. > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
