diff --git a/apps/rpm/serializers.py b/apps/rpm/serializers.py index 8f67e05f..c97961b0 100644 --- a/apps/rpm/serializers.py +++ b/apps/rpm/serializers.py @@ -30,18 +30,14 @@ class RpartyCreateUpdateSerializer(CustomModelSerializer): @transaction.atomic def create(self, validated_data): - instance = super().create(validated_data) - dept, _ = Dept.objects.get_or_create(name=instance.name, type="rparty", - defaults={ - "name": instance.name, - "parent": instance.belong_dept, - "type": "rparty" - }) + dept = Dept() + dept.name = validated_data['name'] + dept.parent = validated_data['belong_dept'] + dept.type = 'rparty' + dept.save() sync_dahua_dept(dept) - Rparty.objects.get_queryset(all=True).filter(dept=dept).update(dept=None, is_deleted=True) - instance.dept = dept - instance.save() - return instance + validated_data['dept'] = dept + return super().create(validated_data) @transaction.atomic def update(self, instance, validated_data): @@ -49,6 +45,7 @@ class RpartyCreateUpdateSerializer(CustomModelSerializer): dept = instance.dept if dept: dept.name = instance.name + dept.is_deleted = False dept.parent = instance.belong_dept # 重新规划归属部门 dept.save() sync_dahua_dept(dept)