serializers.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from rest_framework import serializers
  2. from apps.PestAnalysis.models import CbdAddrPest, EnvTempHum
  3. class ZhiBaoSelectViewSerializer(serializers.Serializer):
  4. identify_model = serializers.CharField(help_text="识别模型", required=True)
  5. start_time = serializers.IntegerField(help_text="开始时间 秒级时间戳", required=True)
  6. end_time = serializers.IntegerField(help_text="结束时间 秒级时间戳", required=True)
  7. pest_name = serializers.CharField(help_text="害虫名称", required=False)
  8. page = serializers.IntegerField(help_text="页码", required=True)
  9. page_size = serializers.IntegerField(help_text="每页数量", required=True)
  10. def validate_identify_model(self, value):
  11. if value not in ["A","B"]:
  12. raise serializers.ValidationError("无法识别筛选模型")
  13. return value
  14. def validate_start_time(self, value):
  15. if value<0:
  16. raise serializers.ValidationError("时间戳不能小于0")
  17. return value
  18. def validate_end_time(self, value):
  19. if value<0:
  20. raise serializers.ValidationError("时间戳不能小于0")
  21. return value
  22. def validate_page(self, value):
  23. if value<1:
  24. raise serializers.ValidationError("页码不能小于1")
  25. return value
  26. def validate_page_size(self, value):
  27. if value<1:
  28. raise serializers.ValidationError("每页数据不能小于1")
  29. return value
  30. def validate(self, attrs):
  31. if attrs["start_time"] > attrs["end_time"]:
  32. raise serializers.ValidationError("结束时间不能小于开始时间")
  33. return attrs
  34. class CbdAddrPestSerializer(serializers.ModelSerializer):
  35. class Meta:
  36. model = CbdAddrPest
  37. fields = "__all__"
  38. class EnvTempHumSerializer(serializers.ModelSerializer):
  39. class Meta:
  40. model = EnvTempHum
  41. fields = "__all__"