serializers.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from rest_framework import serializers
  2. class ZhiBaoSelectViewSerializer(serializers.Serializer):
  3. identify_model = serializers.CharField(help_text="识别模型", required=True)
  4. start_time = serializers.IntegerField(help_text="开始时间 秒级时间戳", required=True)
  5. end_time = serializers.IntegerField(help_text="结束时间 秒级时间戳", required=True)
  6. pest_name = serializers.CharField(help_text="害虫名称", required=False)
  7. page = serializers.IntegerField(help_text="页码", required=True)
  8. page_size = serializers.IntegerField(help_text="每页数量", required=True)
  9. def validate_identify_model(self, value):
  10. if value not in ["A","B"]:
  11. raise serializers.ValidationError("无法识别筛选模型")
  12. return value
  13. def validate_start_time(self, value):
  14. if value<0:
  15. raise serializers.ValidationError("时间戳不能小于0")
  16. return value
  17. def validate_end_time(self, value):
  18. if value<0:
  19. raise serializers.ValidationError("时间戳不能小于0")
  20. return value
  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. def validate(self, attrs):
  30. if attrs["start_time"] > attrs["end_time"]:
  31. raise serializers.ValidationError("结束时间不能小于开始时间")
  32. return attrs