DRF的Serializer和ModelSerializer

Posted liuzhihao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DRF的Serializer和ModelSerializer相关的知识,希望对你有一定的参考价值。

 

一般的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__"即可将所有字段都序列化。

以上是关于DRF的Serializer和ModelSerializer的主要内容,如果未能解决你的问题,请参考以下文章

第三章drf框架 - 序列化组件 | Serializer

DRF框架之Serializer序列化器的序列化操作

drf Serializer使用

DRF框架serializer之视图优化

DRF框架serializer之ModelSerializer

DRF lazy Serializer