Django事务在更新记录时回滚

时间:2020-01-15 10:32:05

标签: python django csv transactions

我有一个CSV文件,可以批量更新记录。

CSV格式:

id  amount
4   100
5   200
6   five   --> error
7   400

如果CSV数据有错误,我想回滚到数据的先前状态。

就像上面的CSV id 6 一样,有一个字符串,并且我在数据库中的列是整数,因此将引发异常。

views.py

from django.db import transaction
lines = csv.reader(my_csv.csv)
for line in lines:
    try:
       MyModel.objects.filter(id=line[0]).update(amount=line[1])
    except:
      transaction.rollback()
      break

例外

("'%(value)s' value must be a decimal number.", 'invalid', {'value': 'five'})
[]

我们的代码因 id 6 新数据正在更新而异常。

0 个答案:

没有答案