Çoklu Yazma İçin Transaction Eksik (ARCH2065)
Anahtar python.orm.missing-transaction-for-multi-write · Önem warning · Kategori orm
Aynı metotta birbirine bağımlı iki veya daha fazla yazmanın açık bir transaction/atomic bloğuna sarılmaması, kısmi commit riski taşır. Yazmaları atomik yapın.
Hatalı
Bölüm başlığı “Hatalı”def transfer(src, dst, amount): src.balance -= amount src.save() # buradan sonra hata olursa para kaybolur dst.balance += amount dst.save()def transfer(src, dst, amount): with transaction.atomic(): src.balance -= amount src.save() dst.balance += amount dst.save()Düzeltme
Bölüm başlığı “Düzeltme”Bağımlı çoklu yazmaları transaction.atomic() bloğuna sarın, böylece ya hepsi ya hiçbiri commit edilir.