serializers.py 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. # coding=utf-8
  2. from django.db.models import Q
  3. from rest_framework import serializers
  4. from apps.customer.models import *
  5. from apps.vehicle_order.models import *
  6. from apps.product_order.models import *
  7. from apps.base import Formater
  8. from utils.exceptions import CustomError
  9. from apps.maint_order.models import MaintOrderReserve
  10. class CustomerVehicleSerializer(serializers.ModelSerializer):
  11. class Meta:
  12. model = CustomerVehicle
  13. fields = '__all__'
  14. def create(self, validated_data):
  15. customer = self.context['request'].customer
  16. validated_data['customer'] = customer
  17. instance = super(CustomerVehicleSerializer, self).create(validated_data)
  18. return instance
  19. class CustomerAddressSerializer(serializers.ModelSerializer):
  20. full_addr = serializers.SerializerMethodField()
  21. def get_full_addr(self, obj):
  22. full_addr = obj.area + obj.addr
  23. return full_addr
  24. class Meta:
  25. model = CustomerAddress
  26. fields = '__all__'
  27. def create(self, validated_data):
  28. customer = self.context['request'].customer
  29. validated_data['customer'] = customer
  30. if validated_data['default']:
  31. CustomerAddress.objects.filter(customer=customer).update(default=False)
  32. instance = super(CustomerAddressSerializer, self).create(validated_data)
  33. return instance
  34. class ProductOrderSerializer(serializers.ModelSerializer):
  35. product_name = serializers.CharField(source='product.name', read_only=True)
  36. name = serializers.CharField(source='customer.name', read_only=True)
  37. customer_name = serializers.CharField(source='customer_address.name', read_only=True)
  38. customer_tel = serializers.CharField(source='customer_address.tel', read_only=True)
  39. area = serializers.CharField(source='customer_address.area', read_only=True)
  40. addr = serializers.CharField(source='customer_address.addr', read_only=True)
  41. status_text = serializers.CharField(source='get_status_display', read_only=True)
  42. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  43. price = serializers.SerializerMethodField()
  44. amount = serializers.SerializerMethodField()
  45. def get_price(self, obj):
  46. return Formater.formatPriceShow(obj.price)
  47. def get_amount(self, obj):
  48. return Formater.formatAmountShow(obj.amount)
  49. class Meta:
  50. model = ProductOrder
  51. fields = '__all__'
  52. class VehicleDriveReserveSerializer(serializers.ModelSerializer):
  53. shop_name = serializers.CharField(source='shop.name', read_only=True)
  54. brand_name = serializers.CharField(source='model.series.brand.name', read_only=True)
  55. series_name = serializers.CharField(source='model.series.name', read_only=True)
  56. model_name = serializers.CharField(source='model.name', read_only=True)
  57. customer_name = serializers.CharField(source='customer.name', read_only=True)
  58. status_text = serializers.CharField(source='get_status_display', read_only=True)
  59. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  60. date = serializers.DateField(format='%Y-%m-%d')
  61. img1_url = serializers.SerializerMethodField()
  62. img2_url = serializers.SerializerMethodField()
  63. def get_img1_url(self, obj):
  64. if obj.img1:
  65. return '%s%s' % (settings.MEDIA_URL, obj.img1.picture)
  66. return ''
  67. def get_img2_url(self, obj):
  68. if obj.img2:
  69. return '%s%s' % (settings.MEDIA_URL, obj.img2.picture)
  70. return ''
  71. class Meta:
  72. model = VehicleDriveReserve
  73. fields = '__all__'
  74. def create(self, validated_data):
  75. customer = self.context['request'].customer
  76. validated_data['customer'] = customer
  77. instance = super(VehicleDriveReserveSerializer, self).create(validated_data)
  78. return instance
  79. class VehicleInquirySerializer(serializers.ModelSerializer):
  80. shop_name = serializers.CharField(source='shop.name', read_only=True)
  81. brand_name = serializers.CharField(source='model.series.brand.name', read_only=True)
  82. series_name = serializers.CharField(source='model.series.name', read_only=True)
  83. model_name = serializers.CharField(source='model.name', read_only=True)
  84. customer_name = serializers.CharField(source='customer.name', read_only=True)
  85. status_text = serializers.CharField(source='get_status_display', read_only=True)
  86. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  87. displace_text = serializers.SerializerMethodField()
  88. def get_displace_text(self, obj):
  89. return obj.displace and u'是' or u'否'
  90. class Meta:
  91. model = VehicleInquiry
  92. fields = '__all__'
  93. def create(self, validated_data):
  94. customer = self.context['request'].customer
  95. validated_data['customer'] = customer
  96. instance = super(VehicleInquirySerializer, self).create(validated_data)
  97. return instance
  98. class UsedVehicleInquirySerializer(serializers.ModelSerializer):
  99. brand_name = serializers.CharField(source='brand.name', read_only=True)
  100. customer_name = serializers.CharField(source='customer.name', read_only=True)
  101. customer_tel = serializers.CharField(source='customer.tel', read_only=True)
  102. status_text = serializers.CharField(source='get_status_display', read_only=True)
  103. gender_text = serializers.CharField(source='get_gender_display', read_only=True)
  104. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  105. class Meta:
  106. model = UsedVehicleInquiry
  107. fields = '__all__'
  108. def create(self, validated_data):
  109. customer = self.context['request'].customer
  110. validated_data['customer'] = customer
  111. instance = super(UsedVehicleInquirySerializer, self).create(validated_data)
  112. return instance
  113. class UsedVehicleEstimateSerializer(serializers.ModelSerializer):
  114. brand_name = serializers.CharField(source='brand.name', read_only=True)
  115. customer_name = serializers.CharField(source='customer.name', read_only=True)
  116. customer_tel = serializers.CharField(source='customer.tel', read_only=True)
  117. status_text = serializers.CharField(source='get_status_display', read_only=True)
  118. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  119. plate_date = serializers.DateField(format='%Y-%m-%d')
  120. class Meta:
  121. model = UsedVehicleEstimate
  122. fields = '__all__'
  123. def create(self, validated_data):
  124. customer = self.context['request'].customer
  125. validated_data['customer'] = customer
  126. instance = super(UsedVehicleEstimateSerializer, self).create(validated_data)
  127. return instance
  128. class MaintOrderReserveSerializer(serializers.ModelSerializer):
  129. shop_name = serializers.CharField(source='shop.name', read_only=True)
  130. model_name = serializers.CharField(source='vehicle.model', read_only=True)
  131. customer_name = serializers.CharField(source='customer.name', read_only=True)
  132. status_text = serializers.CharField(source='get_status_display', read_only=True)
  133. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  134. date = serializers.DateField(format='%Y-%m-%d')
  135. class Meta:
  136. model = MaintOrderReserve
  137. fields = '__all__'
  138. def create(self, validated_data):
  139. customer = self.context['request'].customer
  140. validated_data['customer'] = customer
  141. instance = super(MaintOrderReserveSerializer, self).create(validated_data)
  142. return instance