我使用以下代码获取PonyORM中当前插入行的所有值。
transportTypes = TransportTypes(TransportTypeTitle = data['TransportTypeTitle'], Description = data['Description'], LatestUpdateDate = datetime.now())
但是,主键仍然没有值。 ID为自动递增。如何获取PonyORM中当前插入记录的ID?
答案 0 :(得分:0)
您需要通过调用实体Entity.flush()
method来显式刷新实体:
将对此对象所做的更改保存到数据库中。通常,Pony会自动保存更改,您无需自己调用此方法。 可能需要使用的一种用例是,您想要获取一个新创建的对象的主键值,该对象在提交之前具有自动递增的主键。
粗体强调我的
另一种选择是先明确地
如果需要获取新创建对象的主键值,则可以在
commit()
内手动进行db_session()
,以获取该值[。]# [...] @db_session def handler(email): c = Customer(email=email) # c.id is equal to None # because it is not assigned by the database yet commit() # the new object is persisted in the database # c.id has the value now print(c.id)