Я хочу создать и объект, сохранить его в БД, а затем проверить, есть ли еще одна строка в БД с тем же token
с execution_time
= 0. Если есть, я хочу удалить созданный объект, а затем перезапустить процесс.Должен ли я совершать транзакции в Django 1.6?
transfer = Transfer(token = generateToken(size=9))
transfer.save()
while (len(Transfer.objects.filter(token=transfer.token, execution_time=0))!=1):
transfer.delete()
transfer = Transfer(token = generateToken(size=9))
transfer.save()
Должен ли я совершить транзакцию между каждым циклом? Например, звоните commit()
в конце каждого цикла?
while (len(Transfer.objects.filter(token=transfer.token, execution_time=0))!=1):
transfer.delete()
transfer = Transfer(token = generateToken(size=9))
transfer.save()
commit()
@transaction.commit_manually
def commit():
transaction.commit()
Возможно, было бы полезно добавить atomic = True в настройки вашего django. это превращает каждое взаимодействие с базами данных в транзакцию./ – agconti