From ae8652a305c86d3fc0bbd6c1df061a0466a5c233 Mon Sep 17 00:00:00 2001 From: Calum Mackervoy <c.mackervoy@gmail.com> Date: Mon, 19 Oct 2020 08:45:31 +0000 Subject: [PATCH] bugfix: Serializer.create completed in a transaction --- djangoldp/serializers.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py index e45a55a7..eb6170b6 100644 --- a/djangoldp/serializers.py +++ b/djangoldp/serializers.py @@ -8,6 +8,7 @@ from django.conf import settings from django.contrib.auth import get_user_model from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ValidationError as DjangoValidationError +from django.db import transaction from django.urls import resolve, Resolver404, get_script_prefix from django.urls.resolvers import get_resolver from django.db.models import QuerySet @@ -588,9 +589,9 @@ class LDPSerializer(HyperlinkedModelSerializer): return super().get_value(dictionary) def create(self, validated_data): - instance = self.internal_create(validated_data, model=self.Meta.model) - - self.attach_related_object(instance, validated_data) + with transaction.atomic(): + instance = self.internal_create(validated_data, model=self.Meta.model) + self.attach_related_object(instance, validated_data) return instance -- GitLab