1234567891011121314151617181920212223242526272829303132333435363738 |
- # coding=utf-8
- import datetime
- from rest_framework import serializers
- from utils.exceptions import CustomError
- from apps.order.models import ShoppingCart
- class ShoppingCartSerializer(serializers.ModelSerializer):
- class Meta:
- model = ShoppingCart
- fields = '__all__'
- def validate(self, attrs):
- if 'quantity' in attrs:
- try:
- quantity = int(attrs['quantity'])
- except:
- raise CustomError(u'商品数量错误,请修改!')
- if quantity <= 0:
- raise CustomError(u'商品数量错误,请修改!')
- return attrs
- def create(self, validated_data):
- validated_data['customer'] = self.context['request'].customer
- if int(validated_data['quantity']) <= 0:
- raise CustomError('商品数量错误,请修改!')
- instance = ShoppingCart.objects.filter(commodity_details=validated_data['commodity_details'], customer=validated_data['customer']).first()
- if instance:
- instance.quantity += validated_data['quantity']
- instance.save()
- else:
- instance = super(ShoppingCartSerializer, self).create(validated_data)
- return instance
|