summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2014-05-02 09:06:15 +0200
committerClaude Paroz <claude@2xlibre.net>2014-05-02 09:06:15 +0200
commit0dce44e16be2d4850120cd333380ab9171c5964a (patch)
treed8883a699f9d9eee4fc81cbc1054450f8bdfc54d
parentc8d257e81dd35ccb94f7f046537740d766137b59 (diff)
Fixed #22540 -- Made _create_object_from_params() call create()
So as the save step is centralized in create(), especially useful when customizing behavior in subclasses. Thanks craig.labenz@gmail.com for the report.
-rw-r--r--django/db/models/query.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index a1ff38e784..0a5e9073d6 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -364,7 +364,8 @@ class QuerySet(object):
"""
obj = self.model(**kwargs)
self._for_write = True
- obj.save(force_insert=True, using=self.db)
+ with transaction.atomic(using=self.db):
+ obj.save(force_insert=True, using=self.db)
return obj
def bulk_create(self, objs, batch_size=None):
@@ -446,10 +447,8 @@ class QuerySet(object):
Tries to create an object using passed params.
Used by get_or_create and update_or_create
"""
- obj = self.model(**params)
try:
- with transaction.atomic(using=self.db):
- obj.save(force_insert=True, using=self.db)
+ obj = self.create(**params)
return obj, True
except IntegrityError:
exc_info = sys.exc_info()