Opened 6 years ago

Last modified 6 years ago

#28970 closed New feature

Option to suppress signals on save to avoid loop — at Initial Version

Reported by: Gustavo Henrique de Almeida Gonçalves Owned by: nobody
Component: Database layer (models, ORM) Version: 2.0
Severity: Normal Keywords: signal suppress save recursion loop problem
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Calling instance.save() inside a post_save signal receiver causes a loop and max recursion error. This problem is very easy to fall into and the best solution at the moment is call the QuerySet update() method, so that the post_save signal is not called in this case.

This is a very ugly workaround. I think Django should give the option to call save() and explicitly suppress signal emmiting. For example:

instance.save(post_save=False)

In the above method call, post_save signal would not be sent, and the loop problem would not occurs.

Change History (0)

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