serializers.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. # req = serializers.CharField(help_text="类型", required=True)
  16. # device_id = serializers.CharField(help_text="设备号", required=True)
  17. # start_timestamp = serializers.IntegerField(help_text="开始时间戳(秒级)", required=True)
  18. # end_timestamp = serializers.IntegerField(help_text="结束时间戳(秒级)", required=True)
  19. # page = serializers.IntegerField(help_text="页码", required=True)
  20. # page_size = serializers.IntegerField(help_text="页长", required=True)
  21. # def validate_page(self, value):
  22. # if value<1:
  23. # raise serializers.ValidationError("页码不能小于1")
  24. # return value
  25. # def validate_page_size(self, value):
  26. # if value<1:
  27. # raise serializers.ValidationError("每页数据不能小于1")
  28. # return value
  29. class DeviceDetailSerializer(serializers.Serializer):
  30. req = serializers.CharField(help_text="类型", required=True)
  31. device_id = serializers.CharField(help_text="设备号", required=True)
  32. start_timestamp = serializers.IntegerField(help_text="开始时间戳(秒级)", required=False)
  33. end_timestamp = serializers.IntegerField(help_text="结束时间戳(秒级)", required=False)
  34. page = serializers.IntegerField(help_text="页码", required=False)
  35. page_size = serializers.IntegerField(help_text="页长", required=False)
  36. def validate(self, attrs):
  37. if attrs.get("req")=="history":
  38. if not attrs.get("start_timestamp",""):
  39. raise serializers.ValidationError({"start_timestamp":"参数为必填项"})
  40. if not attrs.get("end_timestamp",""):
  41. raise serializers.ValidationError({"end_timestamp":"参数为必填项"})
  42. if attrs["start_timestamp"] > attrs["end_timestamp"]:
  43. raise serializers.ValidationError({"timestamp":"结束时间不能小于开始时间"})
  44. if not attrs.get("page",""):
  45. attrs["page"] = 1
  46. if not attrs.get("page_size",""):
  47. attrs["page_size"] = 10
  48. elif attrs.get("req")=="new":
  49. if not attrs.get("page_size",""):
  50. attrs["page_size"] = 1
  51. if not attrs.get("offset",""):
  52. attrs["offset"] = 0
  53. else:
  54. raise serializers.ValidationError({"req":"参数超出阈值"})
  55. return attrs