serializers.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from django.conf import settings
  4. from .models import Order,ProgressDetails
  5. from utils.booleancharfield import TimeCharField
  6. class OrderSerializer(serializers.ModelSerializer):
  7. service_user_text = serializers.CharField(source='service_user.name', read_only=True)
  8. create_time_f = TimeCharField(source='create_time', 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='create_time', format=settings.SHORT_DATETIME_FORMAT,
  25. read_only=True)
  26. class Meta:
  27. model = ProgressDetails
  28. fields = (
  29. 'id', 'user_text', 'operation', 'notes', 'operation_time_f',
  30. )
  31. # class OrderDertailSerializer(serializers.ModelSerializer):
  32. # service_user_text = serializers.CharField(source='service_user.name', read_only=True)
  33. # name = serializers.CharField(source='customer.name', read_only=True)
  34. # tel = serializers.CharField(source='customer.tel', read_only=True)
  35. # address = serializers.CharField(source='customer.address', read_only=True)
  36. # stage_progress_text = serializers.CharField(source='stage_progress.name', read_only=True)
  37. # project_text = serializers.SerializerMethodField()
  38. #
  39. # def get_project_text(self, obj):
  40. # project = obj.project.all()
  41. # return ','.join(project.values_list('name', flat=True))
  42. #
  43. # class Meta:
  44. # model = Order
  45. # fields = (
  46. # 'id', 'service_user_text', 'name', 'tel', 'address', 'stage_progress_text', 'project_text',
  47. # )