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.
35 lines
1.2 KiB
35 lines
1.2 KiB
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__'
|
|
|