对单个事务中的多个实体的更改

时间:2010-03-29 13:30:33

标签: python

我正在尝试在app引擎平台的单个事务中对多个实体进行更改。据我所知,为了成功这样做,App Engine需要事先知道哪些实体将一起更新,因此它知道以支持事务的方式存储它们。因此,用户必须在创建实体时声明实体与另一个实体属于同一实体组。

如何在创建时声明一个实体属于另一个实体组?

2 个答案:

答案 0 :(得分:2)

使用parent参数来建模构造函数

答案 1 :(得分:0)

在第二类构造函数中将obj作为父参数...

class GroupA(db.Model):
    counterA = db.IntegerProperty()

class ExampleA(db.Model):
    exampleA = db.IntegerProperty()

def increment_counterA():

    obj = GroupA()
    obj.counterA = '89'
    obj.put()

    obj1 = ExampleA(parent = obj)
    obj1.exampleA = 90
    obj1.put()

class implementGroupA(webapp.RequestHandler):
    def get(self):
        db.run_in_transaction(increment_counterA)


def main():
    application = webapp.WSGIApplication([('/', implementGroupA)],
                                         debug=True)
    util.run_wsgi_app(application)

if __name__ == '__main__':
    main()