mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #16649 -- Refactored save_base logic
Model.save() will use UPDATE - if not updated - INSERT instead of SELECT - if found UPDATE else INSERT. This should save a query when updating, but will cost a little when inserting model with PK set. Also fixed #17341 -- made sure .save() commits transactions only after the whole model has been saved. This wasn't the case in model inheritance situations. The save_base implementation was refactored into multiple methods. A typical chain for inherited save is: save_base() _save_parents(self) for each parent: _save_parents(parent) _save_table(parent) _save_table(self)
This commit is contained in:
@@ -294,7 +294,7 @@ class ModelInheritanceTests(TestCase):
|
||||
rating=4,
|
||||
chef=c
|
||||
)
|
||||
with self.assertNumQueries(6):
|
||||
with self.assertNumQueries(3):
|
||||
ir.save()
|
||||
|
||||
def test_update_parent_filtering(self):
|
||||
|
||||
Reference in New Issue
Block a user