diff --git a/apps/rpm/serializers.py b/apps/rpm/serializers.py index 31021732..8f67e05f 100644 --- a/apps/rpm/serializers.py +++ b/apps/rpm/serializers.py @@ -31,13 +31,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, + dept, _ = Dept.objects.get_or_create(name=instance.name, type="rparty", defaults={ "name": instance.name, "parent": instance.belong_dept, "type": "rparty" }) 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 @@ -46,10 +47,11 @@ class RpartyCreateUpdateSerializer(CustomModelSerializer): def update(self, instance, validated_data): instance = super().update(instance, validated_data) dept = instance.dept - dept.name = instance.name - dept.parent = instance.belong_dept # 重新规划归属部门 - dept.save() - sync_dahua_dept(dept) + if dept: + dept.name = instance.name + dept.parent = instance.belong_dept # 重新规划归属部门 + dept.save() + sync_dahua_dept(dept) return instance