serializers.py 1.6 KB

123456789101112131415161718192021222324252627282930313233
  1. # coding=utf-8
  2. import datetime
  3. from rest_framework import serializers
  4. from .models import *
  5. from django.conf import settings
  6. from utils.booleancharfield import PriceShowCharField
  7. from apps.base import Formater
  8. class OrderSerializer(serializers.ModelSerializer):
  9. payment_name = serializers.CharField(source='get_payment_display', read_only=True)
  10. create_user_text = serializers.CharField(source='create_user.username', read_only=True)
  11. commodity_text = serializers.CharField(source='name', read_only=True)
  12. student_text = serializers.CharField(source='student.name', read_only=True)
  13. school_text = serializers.CharField(source='student.school.name', read_only=True)
  14. grade_text = serializers.CharField(source='student.classes.grade.name', read_only=True)
  15. class_text = serializers.CharField(source='student.classes.name', read_only=True)
  16. # create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  17. # read_only=True)
  18. status_text = serializers.CharField(source='get_status_display', read_only=True)
  19. total_amount = PriceShowCharField(read_only=True)
  20. balance_deduction = PriceShowCharField(read_only=True)
  21. actual_amount = PriceShowCharField(read_only=True)
  22. class Meta:
  23. model = Order
  24. fields = '__all__'
  25. def create(self, validated_data):
  26. validated_data['create_user'] = self.context['request'].user
  27. instance = super(OrderSerializer, self).create(validated_data)
  28. instance.no = instance.get_no()
  29. instance.save()
  30. return instance