serializers.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from rest_framework import serializers
  2. import time
  3. # import ast
  4. # from .models import Device
  5. class SearchEquipSerializer(serializers.Serializer):
  6. device_id = serializers.CharField(help_text="搜索设备号", required=True)
  7. isfullId = serializers.IntegerField(help_text="是否完整搜索固定值1", required=False)
  8. def validate_device_id(self, value):
  9. value = value.strip()
  10. if len(value) < 4:
  11. raise serializers.ValidationError("设备号长度不能小于4位")
  12. else:
  13. return value
  14. class DeviceDetailSerializer(serializers.Serializer):
  15. device_id = serializers.CharField(help_text="设备号", required=True)
  16. start_timestamp = serializers.IntegerField(help_text="开始时间戳(秒级)", required=False)
  17. end_timestamp = serializers.IntegerField(help_text="结束时间戳(秒级)", required=False)
  18. page_start = serializers.IntegerField(help_text="起始", required=False)
  19. page_size = serializers.IntegerField(help_text="页长", required=False)
  20. def validate_page_size(self, value):
  21. if value > 100:
  22. raise serializers.ValidationError("超出设置阈值100")
  23. else:
  24. return value
  25. def validate_page_start(self, value):
  26. if value < 0:
  27. raise serializers.ValidationError("page_start不能小于0")
  28. else:
  29. return value
  30. def validate_page_size(self, value):
  31. if value < 1:
  32. raise serializers.ValidationError("page_start不能小于1")
  33. else:
  34. return value
  35. def validate(self, attrs):
  36. if attrs.get("start_timestamp") and attrs.get("end_timestamp"):
  37. if attrs["start_timestamp"] > attrs["end_timestamp"]:
  38. raise serializers.ValidationError({"timestamp":"结束时间不能小于开始时间"})
  39. elif not attrs.get("start_timestamp") and attrs.get("end_timestamp"):
  40. raise serializers.ValidationError({"start_timestamp":"结束时间存在,开始时间必须存在"})
  41. elif attrs.get("start_timestamp") and not attrs.get("end_timestamp"):
  42. raise serializers.ValidationError({"end_timestamp":"开始时间存在,结束时间必须存在"})
  43. elif not attrs.get("start_timestamp") and not attrs.get("end_timestamp"):
  44. attrs["start_timestamp"] = 0
  45. attrs["end_timestamp"] = 0
  46. if not attrs.get("page_start",""):
  47. attrs["page_start"] = 0
  48. if not attrs.get("page_size",""):
  49. attrs["page_size"] = 10
  50. return attrs