fix: em serializer 优化
This commit is contained in:
parent
3976e3834e
commit
c71624def0
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue