Junior — Middle
How is transaction management implemented in Django and how to do it correctly?
sobes.tech AI
Answer from AI
In Django, transaction management is handled through the django.db.transaction module. Main methods include:
- The
@transaction.atomicdecorator — wraps a function or method in an atomic transaction. If an exception occurs inside, all changes are rolled back. - The
with transaction.atomic():context manager — explicitly defines a block of code to run within a transaction.
Example:
from django.db import transaction
def create_order():
with transaction.atomic():
order = Order.objects.create(...)
# other database operations
if some_error:
raise Exception("Error, rolling back transaction")
Proper transaction implementation guarantees data integrity and prevents partial updates in case of errors.