Managing transactions in Django has been considered a black art, but the state of the black art has improved considerably with each new release. We'll talk about the best ways of managing transactions in your Django app, including pre-1.6 and 1.6 and later feature sets. Included in the discussion will be database-specific features (mostly PostgreSQL), and an overview of some advanced topics such as transaction isolation modes and two-phase commit.