Quellcode durchsuchen

Moved misplaced transaction.atomic from 0dce44e16b

Thanks Florian Apolloner for noticing the issue and Aymeric
Augustin for the expertise.
Refs #22540.
Claude Paroz vor 11 Jahren
Ursprung
Commit
faa8c71fd9
1 geänderte Dateien mit 3 neuen und 3 gelöschten Zeilen
  1. 3 3
      django/db/models/query.py

+ 3 - 3
django/db/models/query.py

@@ -364,8 +364,7 @@ class QuerySet(object):
         """
         obj = self.model(**kwargs)
         self._for_write = True
-        with transaction.atomic(using=self.db):
-            obj.save(force_insert=True, using=self.db)
+        obj.save(force_insert=True, using=self.db)
         return obj
 
     def bulk_create(self, objs, batch_size=None):
@@ -448,7 +447,8 @@ class QuerySet(object):
         Used by get_or_create and update_or_create
         """
         try:
-            obj = self.create(**params)
+            with transaction.atomic(using=self.db):
+                obj = self.create(**params)
             return obj, True
         except IntegrityError:
             exc_info = sys.exc_info()