123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # coding=utf-8
- import datetime
- from rest_framework import serializers
- from .models import *
- from django.conf import settings
- from utils.booleancharfield import PriceShowCharField
- from apps.base import Formater
- class OrderSerializer(serializers.ModelSerializer):
- payment_name = serializers.CharField(source='get_payment_display', read_only=True)
- create_user_text = serializers.CharField(source='create_user.username', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- total_amount = PriceShowCharField(read_only=True)
- actual_amount = PriceShowCharField(read_only=True)
- class Meta:
- model = Order
- fields = '__all__'
- def create(self, validated_data):
- validated_data['create_user'] = self.context['request'].user
- instance = super(OrderSerializer, self).create(validated_data)
- instance.no = instance.get_no()
- instance.save()
- return instance
- class CouponSerializer(serializers.ModelSerializer):
- create_user_text = serializers.CharField(source='create_user.username', read_only=True)
- amount = PriceShowCharField(read_only=True)
- class Meta:
- model = Coupon
- fields = '__all__'
- def create(self, validated_data):
- validated_data['create_user'] = self.context['request'].user
- instance = super(CouponSerializer, self).create(validated_data)
- instance.save()
- return instance
- class ShoppingCartSerializer(serializers.ModelSerializer):
- name = serializers.CharField(source='commodity.name', read_only=True)
- stock = serializers.CharField(source='commodity.stock', read_only=True)
- price = serializers.SerializerMethodField()
- images = serializers.SerializerMethodField()
- def get_price(self, obj):
- return Formater.formatPriceShow(obj.commodity.price * obj.commodity.discount/100)
- def get_images(self, obj):
- if obj.commodity.main_image:
- img = Upload.objects.filter(id=obj.commodity.main_image.id).first()
- if img:
- return img.get_path()
- return ''
- class Meta:
- model = ShoppingCart
- fields = (
- 'id', 'name', 'price', 'stock', 'images', 'quantity', 'commodity'
- )
- def create(self, validated_data):
- validated_data['create_user'] = self.context['request'].user
- validated_data['quantity'] = validated_data.get('quantity')
- instance = ShoppingCart.objects.filter(commodity=self.initial_data['commodity'],
- create_user=validated_data['create_user']).first()
- if instance:
- instance.quantity += validated_data['quantity']
- instance.save()
- else:
- instance = super(ShoppingCartSerializer, self).create(validated_data)
- return instance
|