diff --git a/apps/rpm/serializers.py b/apps/rpm/serializers.py index c5387b0d..3730c758 100644 --- a/apps/rpm/serializers.py +++ b/apps/rpm/serializers.py @@ -24,28 +24,28 @@ class RpartyCreateUpdateSerializer(CustomModelSerializer): 'belong_dept': {'required': True} } + @transaction.atomic def create(self, validated_data): instance = super().create(validated_data) - with transaction.atomic(): - dept = Dept.objects.get_or_create(name=instance.name, - defaults={ - "name": instance.name, - "parent": instance.belong_dept, - "type": "rparty" - }) - sync_dahua_dept(dept) + dept = Dept.objects.get_or_create(name=instance.name, + defaults={ + "name": instance.name, + "parent": instance.belong_dept, + "type": "rparty" + }) + sync_dahua_dept(dept) instance.dept = dept instance.save() return instance + @transaction.atomic def update(self, instance, validated_data): instance = super().update(instance, validated_data) - with transaction.atomic(): - dept = instance.dept - dept.name = instance.name - dept.parent = instance.belong_dept # 重新规划归属部门 - dept.save() - sync_dahua_dept(dept) + dept = instance.dept + dept.name = instance.name + dept.parent = instance.belong_dept # 重新规划归属部门 + dept.save() + sync_dahua_dept(dept) return instance