fix: em serializer 优化

This commit is contained in:
caoqianming 2024-08-15 11:36:38 +08:00
parent 3976e3834e
commit c71624def0
1 changed files with 19 additions and 1 deletions

View File

@ -4,6 +4,7 @@ from apps.system.models import Dept
from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from rest_framework.exceptions import ParseError
class EcateSerializer(CustomModelSerializer):
@ -11,7 +12,16 @@ class EcateSerializer(CustomModelSerializer):
model = Ecate
fields = "__all__"
read_only_fields = EXCLUDE_FIELDS_BASE
extra_kwargs = {"code": {"required": True}}
def validate(self, attrs):
code = attrs.get("code", None)
if code:
ecate = Ecate.objects.get_queryset(all=True).filter(code=code).first()
if ecate and ecate.is_deleted:
ecate.is_deleted = False
ecate.save(update_fields=["is_deleted"])
raise ParseError(f"{code}已存在并恢复")
return attrs
class EquipmentSerializer(CustomModelSerializer):
@ -24,6 +34,14 @@ class EquipmentSerializer(CustomModelSerializer):
full_name = serializers.SerializerMethodField()
def validate(self, attrs):
number = attrs.get("number", None)
if number:
eq = Equipment.objects.get_queryset(all=True).filter(number=number).first()
if eq and eq.is_deleted:
eq.is_deleted = False
eq.save(update_fields=["is_deleted"])
raise ParseError(f"{number}已存在并恢复")
mgroup = attrs.get("mgroup", None)
if mgroup:
attrs["belong_dept"] = mgroup.belong_dept