Fixed #25939 -- Removed redundant transaction in QuerySet.update_or_create().

There is no need to wrap the save() call in transaction.atomic() as
it's already done down the call stack in Model.save_base().
This commit is contained in:
Ed Bartosh 2015-12-09 14:18:44 +02:00 committed by Tim Graham
parent 5146e2cf98
commit 423b3afce4
2 changed files with 5 additions and 3 deletions

View File

@ -484,9 +484,7 @@ class QuerySet(object):
return obj, created
for k, v in six.iteritems(defaults):
setattr(obj, k, v)
with transaction.atomic(using=self.db, savepoint=False):
obj.save(using=self.db)
obj.save(using=self.db)
return obj, False
def _create_object_from_params(self, lookup, params):

View File

@ -363,6 +363,10 @@ Miscellaneous
:class:`~django.http.HttpResponse` are now closed immediately instead of when
the WSGI server calls ``close()`` on the response.
* A redundant ``transaction.atomic()`` call in ``QuerySet.update_or_create()``
is removed. This may affect query counts tested by
``TransactionTestCase.assertNumQueries()``.
.. _deprecated-features-1.10:
Features deprecated in 1.10