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 apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.exceptions import ValidationError
|
from rest_framework.exceptions import ValidationError
|
||||||
|
from rest_framework.exceptions import ParseError
|
||||||
|
|
||||||
|
|
||||||
class EcateSerializer(CustomModelSerializer):
|
class EcateSerializer(CustomModelSerializer):
|
||||||
|
@ -11,7 +12,16 @@ class EcateSerializer(CustomModelSerializer):
|
||||||
model = Ecate
|
model = Ecate
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
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):
|
class EquipmentSerializer(CustomModelSerializer):
|
||||||
|
@ -24,6 +34,14 @@ class EquipmentSerializer(CustomModelSerializer):
|
||||||
full_name = serializers.SerializerMethodField()
|
full_name = serializers.SerializerMethodField()
|
||||||
|
|
||||||
def validate(self, attrs):
|
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)
|
mgroup = attrs.get("mgroup", None)
|
||||||
if mgroup:
|
if mgroup:
|
||||||
attrs["belong_dept"] = mgroup.belong_dept
|
attrs["belong_dept"] = mgroup.belong_dept
|
||||||
|
|
Loading…
Reference in New Issue