0
比方說,我在peewee模型:從數據庫還原peewee模型數據
inst = foo.get(id=1)
print(inst.bar) #Prints 'ValueA'
用戶更改模型:
class foo(Model):
id = PrimaryKeyField()
bar = TextField(null=True)
...
我從數據庫中獲取的foo
實例值:
inst.bar = 'ValueB'
#inst.save() has not been called
現在用戶想要將inst
還原爲值e目前在數據庫中。我想做到這一點:
我看到最接近的事在一個事務中包裝的修改,但目前還不清楚該如何修改需要進行包裝。我測試了一下,交易不工作:
with database.atomic() as txn:
inst.bar = 'ValueB'
txn.rollback()
#I also tried database.rollback() and it didn't work
print(inst.bar) #'ValueB'
包裝紙調用save()
在一個事務並調用rollback()
防止被修改了數據庫,但是模型實例還包含了新的價值之後。
我將如何實現我的預期行爲?