一般的Serializer要自己手动添加各个字段:
class GoodsSerializer(serializers.Serializer):
# 这里各个字段都会放到validate_data里
def update(self, instance, validated_data):
pass
def create(self, validated_data):
return Goods.objects.create(**validated_data)
name = serializers.CharField(required=True, max_length=100)
click_num = serializers.IntegerField(default=0)
goods_front_image = serializers.ImageField()
# ...
使用ModelSerializer可以免去这种繁琐的一个个添加字段的方式:
class GoodsSerializer(serializers.ModelSerializer):
class Meta:
model = Goods
fields = ('name', 'click_num', 'market_price', 'add_time')
使用fields = "__all__"即可将所有字段都序列化。