from rest_framework import serializers import time # import ast # from .models import Device class SearchEquipSerializer(serializers.Serializer): device_id = serializers.CharField(help_text="搜索设备号", required=True) isfullId = serializers.IntegerField(help_text="是否完整搜索固定值1", required=False) def validate_device_id(self, value): value = value.strip() if len(value) < 4: raise serializers.ValidationError("设备号长度不能小于4位") else: return value class DeviceDetailSerializer(serializers.Serializer): device_id = serializers.CharField(help_text="设备号", required=True) start_timestamp = serializers.IntegerField(help_text="开始时间戳(秒级)", required=False) end_timestamp = serializers.IntegerField(help_text="结束时间戳(秒级)", required=False) page_start = serializers.IntegerField(help_text="起始", required=False) page_size = serializers.IntegerField(help_text="页长", required=False) def validate_page_size(self, value): if value > 100: raise serializers.ValidationError("超出设置阈值100") else: return value def validate_page_start(self, value): if value < 0: raise serializers.ValidationError("page_start不能小于0") else: return value def validate_page_size(self, value): if value < 1: raise serializers.ValidationError("page_start不能小于1") else: return value def validate(self, attrs): if attrs.get("start_timestamp") and attrs.get("end_timestamp"): if attrs["start_timestamp"] > attrs["end_timestamp"]: raise serializers.ValidationError({"timestamp":"结束时间不能小于开始时间"}) elif not attrs.get("start_timestamp") and attrs.get("end_timestamp"): raise serializers.ValidationError({"start_timestamp":"结束时间存在,开始时间必须存在"}) elif attrs.get("start_timestamp") and not attrs.get("end_timestamp"): raise serializers.ValidationError({"end_timestamp":"开始时间存在,结束时间必须存在"}) elif not attrs.get("start_timestamp") and not attrs.get("end_timestamp"): attrs["start_timestamp"] = 0 attrs["end_timestamp"] = 0 if not attrs.get("page_start",""): attrs["page_start"] = 0 if not attrs.get("page_size",""): attrs["page_size"] = 10 return attrs