serializers.py 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from apps.base import Formater
  4. from .models import ProductOrder
  5. class ProductOrderSerializer(serializers.ModelSerializer):
  6. product_name = serializers.CharField(source='product.name', read_only=True)
  7. name = serializers.CharField(source='customer.name', read_only=True)
  8. customer_name = serializers.CharField(source='customer_address.name', read_only=True)
  9. customer_tel = serializers.CharField(source='customer_address.tel', read_only=True)
  10. area = serializers.CharField(source='customer_address.area', read_only=True)
  11. addr = serializers.CharField(source='customer_address.addr', read_only=True)
  12. status_text = serializers.CharField(source='get_status_display', read_only=True)
  13. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  14. price = serializers.SerializerMethodField()
  15. amount = serializers.SerializerMethodField()
  16. def get_price(self, obj):
  17. return Formater.formatPriceShow(obj.price)
  18. def get_amount(self, obj):
  19. return Formater.formatAmountShow(obj.amount)
  20. class Meta:
  21. model = ProductOrder
  22. fields = '__all__'
  23. def validate(self, attrs):
  24. if 'price' in attrs:
  25. attrs['price'] = Formater.formatPrice(attrs['price'])
  26. return attrs