2012-01-07 44 views
4

在访问量:金字塔:如何获取刚刚创建的数据库行的ID?

model = Model('some_title', 'some text') 
session.add(model) 

return HTTPFound(location='/ads/%s/%s' % (model.id, model.title)) 

所以,它必须重定向我/ads/1/some_title(如果ID = 1),而不是将其重定向我/ads/None/some_title

如何在此特定示例中创建db行之后获得此行的id

谢谢!

回答

11

在您要求model.id的位置,新模型尚未到达数据库;金字塔等待直到请求处理程序在提交挂起的事务之前返回。要更早地获得ID,您必须刷新会话。地址:

model = Model('some_title', 'some text') 
session.add(model) 

session.flush() 
return HTTPFound(location='/ads/%s/%s' % (model.id, model.title)) 
相关问题