You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.2 KiB
36 lines
1.2 KiB
2 years ago
|
from rest_framework import serializers
|
||
|
from apps.goods.models import *
|
||
|
|
||
|
|
||
|
class GoodsCateSerializer(serializers.Serializer):
|
||
|
id = serializers.IntegerField(read_only=True)
|
||
|
name = serializers.CharField()
|
||
|
|
||
|
|
||
|
class GoodsSerializers(serializers.Serializer):
|
||
|
name = serializers.CharField(required=True, max_length=100)
|
||
|
# category = serializers.CharField(required=False)
|
||
|
category = GoodsCateSerializer(required=False, read_only=True)
|
||
|
market_price = serializers.DecimalField(max_digits=8, decimal_places=2)
|
||
|
price = serializers.DecimalField(max_digits=8, decimal_places=2)
|
||
|
|
||
|
def create(self, validated_data):
|
||
|
print(type(validated_data), validated_data)
|
||
|
return Goods.objects.create(**validated_data)
|
||
|
|
||
|
def update(self, instance, validated_data):
|
||
|
print(type(validated_data), validated_data)
|
||
|
instance.name = validated_data.get('name')
|
||
|
instance.market_price = validated_data.get('market_price')
|
||
|
instance.price = validated_data.get('price')
|
||
|
instance.save()
|
||
|
return instance
|
||
|
|
||
|
|
||
|
class GoodsModelSerializer(serializers.ModelSerializer):
|
||
|
category = GoodsCateSerializer(required=False, read_only=True)
|
||
|
|
||
|
class Meta:
|
||
|
model = Goods
|
||
|
fields = '__all__'
|