DRF框架--模型序列化器ModelSerializer


序列化器:

基础序列化器Serializer

模型序列化器ModelSerializer

from rest_framework.serializers import ModelSerializerclass StudentSerializer(ModelSerializer):


    class Meta:
        model = models.Student
        fields = '__all__'
        # 指定序列化字段
        fields = ['name','age']
        # 指定排除序列化的字段
        exclude = ['name','age']
        # 只读字段
        read_only_fields = ('id','name')
        # 只写字段
        write_only_fields = ('id','name')
        # 跨表查询
        depth = 1  # 跨表1查询,最多建议写3
        # 加额外参数
        # ModelSerializer自动给id加readonly=True
        extra_kwargs = {
            'id':{'read_only':True},
            'name':{
                # 自定义内部参数校验
                'max_length':5,
                'min_length':2,
                # 自定义报错信息
                'error_messages':{'max_length':'名称太长了'},
                # 自定义校验函数
                'validators':[f1,f2]
            }
        }

        # 局部钩子
        def validate_name(self,data):
            pass
            return data

        # 全局钩子
        def validate(self,data):
            pass
            return data