Opened 10 years ago

Last modified 10 years ago

#24228 new Bug

Signals have unclear & inconsistent transaction handling

Reported by: Ryan Gaffney Owned by: nobody
Component: Database layer (models, ORM) Version: dev
Severity: Normal Keywords: transaction, signals, documentation
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no
Pull Requests:How to create a pull request

Description

Hello

The signals documentation says nothing about transactions.

Looking in deletion.py, pre_delete and post_delete are within a transaction.

In base.py, however, pre_save and post_save are not within a transaction.

Whether this inconsistency is a bug is beyond my Django knowledge to determine, but regardless, it should be clear in the documentation what signals are within transactions.

According to the ticket's flags, the next step(s) to move this issue forward are:

  • To provide a patch by sending a pull request. Claim the ticket when you start working so that someone else doesn't duplicate effort. Before sending a pull request, review your work against the patch review checklist. Check the "Has patch" flag on the ticket after sending a pull request and include a link to the pull request in the ticket comment when making that update. The usual format is: [https://github.com/django/django/pull/#### PR].

Change History (1)

comment:1 by Claude Paroz, 10 years ago

Triage Stage: UnreviewedAccepted
Version: 1.7master

I think the pre_save should really be inside the same transaction as the save part. I'm a bit less convinced about the post_save (that is should a post_save error be able to "cancel" a save?), but it might be the case also.

Note: See TracTickets for help on using tickets.
Back to Top