serializers.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from .models import Order,ProgressDetails
  4. from django.conf import settings
  5. class OrderSerializer(serializers.ModelSerializer):
  6. service_user_text = serializers.CharField(source='service_user.name', read_only=True)
  7. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  8. read_only=True)
  9. status_text = serializers.CharField(source='get_status_display', read_only=True)
  10. name = serializers.CharField(source='customer.name', read_only=True)
  11. tel = serializers.CharField(source='customer.tel', read_only=True)
  12. village = serializers.CharField(source='customer.village', read_only=True)
  13. address = serializers.CharField(source='customer.address', read_only=True)
  14. stage_progress_text = serializers.CharField(source='stage_progress.name', read_only=True)
  15. project_text = serializers.SerializerMethodField()
  16. def get_project_text(self, obj):
  17. project = obj.project.all()
  18. return ','.join(project.values_list('name', flat=True))
  19. class Meta:
  20. model = Order
  21. fields = '__all__'
  22. class ProgressDetailsSerializer(serializers.ModelSerializer):
  23. user_text = serializers.CharField(source='user.name', read_only=True)
  24. operation_time_f = serializers.DateTimeField(source='operation_time', format=settings.SHORT_DATETIME_FORMAT,
  25. read_only=True)
  26. has_img = serializers.SerializerMethodField()
  27. def get_has_img(self, obj):
  28. if '更新进度为' in obj.operation:
  29. return True
  30. else:
  31. return False
  32. class Meta:
  33. model = ProgressDetails
  34. fields = '__all__'