ModelSerializer使用
ModelSerializer使用
ModelSerializer它继承了Serializer,它可以直接跟表模型建立关系
优势:
1.要序列化和反序列化的字段直接从表模型中通过映射获取
	eg: 自定义字段还是需要我们自己写的(注意要在fields中注册)
2.封装了create和update方法,但如果处理一下自定义字段还是需要重写方法
代码:
基础版:
class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = "__all__"
		
		
		
拓展版:
class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
	# 自定义字段也要在fields中注册
        fields = ['name', 'price', 'publish', 'authors','publish_detail','author_list' ]
        extra_kwargs = {
            # 这俩字段,只做反序列化
            'publish': {'write_only': True},
            'authors': {'write_only': True}
        }
    # 自定义字段
    publish_detail = serializers.DictField(read_only=True)
    author_list = serializers.ListField(read_only=True)
    # 局部钩子
    def validate_name(self,value):
        ...
        return value
    # 全局钩子
    def validate(self, attrs):
        ...
        return attrs
                    
                
                
            
        
浙公网安备 33010602011771号