diff --git a/apps/qm/views.py b/apps/qm/views.py index 702667e7..a8d0948b 100644 --- a/apps/qm/views.py +++ b/apps/qm/views.py @@ -34,6 +34,11 @@ class DefectViewSet(CustomModelViewSet): filterset_fields = ["cate", "okcate"] search_fields = ["name", "code"] + @transaction.atomic + def perform_destroy(self, instance): + QctDefect.objects.filter(defect=instance).delete() + instance.delete() + class QctViewSet(CustomModelViewSet): """ 检测模板 @@ -136,11 +141,10 @@ class TestItemViewSet(CustomModelViewSet): item["affects_name"] = ";".join([affects_dict.get(x, '未知') for x in affects]) return data - def destroy(self, request, *args, **kwargs): - ins = self.get_object() - if FtestItem.objects.filter(testitem=ins).exists(): - raise ParseError("质检项目已使用,无法删除") - return super().destroy(request, *args, **kwargs) + @transaction.atomic + def perform_destroy(self, instance): + QctTestItem.objects.filter(testitem=instance).delete() + instance.delete() class QuaStatViewSet(ListModelMixin, BulkUpdateModelMixin, CustomGenericViewSet):