#17341: Model.save() commits transactions after every parent class save
-------------------------------------+-------------------------------------
Reporter: akaariai | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: 1.3
(models, ORM) | Resolution:
Severity: Normal | Triage Stage: Accepted
Keywords: | Needs documentation: 0
Has patch: 1 | Patch needs improvement: 0
Needs tests: 1 | UI/UX: 0
Easy pickings: 0 |
-------------------------------------+-------------------------------------
Comment (by akaariai):
Ok, here is a patch. In my opinion it does make it easier to understand
what is going on in the saving process. I have tried to make sure saving
works just like before. The only behavioral change should be committing
only once, after all tables have been saved. At least the tests agree I
haven't broken anything.
There is one thing I don't like, and that is the parameter name
"topmost_concrete". It is needed so that we know to send signals only
once, after the last concrete (non-proxy) model's table is saved. Better
names (or better logic) welcome. Before this was done using origin, which
was self.`__class__`, until first concrete model was seen, and after that
it was None. The information in origin was not needed for anything else
than checking when to send signals.
--
Ticket URL: <https://code.djangoproject.com/ticket/17341#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.