zoukankan      html  css  js  c++  java
  • 序列化组件

    序列化组件:

      --Serializer

        1、重命名:用source:   xx = serializers.CharField(source='name')

        2、取出版社名字:

            方式一:

               -在模型表中重写__str__方法

               -publish=serializers.CharField()

            方式二:

               -用source

                  -拿出出版社的城市

               -publish=serializers.CharField(source='publish.city')

        *****如果不指定source,字段必须对应起来,如果指定了source,字段可以任意命名

        -source 可以指定字段,也可也指定方法

           publish.test这是个方法,会执行该方法,并拿到返回结果

           test = serializers.CharField(source='publish.test')

        -3 SerializerMethodField,可以指定一个方法

           publish=serializers.SerializerMethodField()

           # 方法名:叫get_字段名,要传参数,参数是:当前book对象

           def get_publish(self,obj):

             # obj 是当前book对象

            dic={'name':obj.publish.name,'email':obj.publish.email}

                return dic

           -方法内部可以继续用其他的序列化类

        -ModelSerializer

           -必须在类中写

           class Meta:

             model=指定表

                  # fields = '__all__'

                    # 指定只取这两个字段

             fields = ['nid','name']

             # 去掉指定的字段

             # exclude=['publish','authors']

             # fields,跟exclude不能连用

             # 指定深度,就是跨几个表(官方建议小于10,我给你的建议小于3)

             # depth = 2

    
    
    #生成一个序列化的对象,传参数 
    #序列化多条,记住many=True
    book_ser=BookSerializer(ret,many=True)
    
    
    
    

          

  • 相关阅读:
    新框架的选择
    ‘’火星文‘’的解析
    http.request请求及在node中post请求参数解析
    http.request的请求
    ReactNative环境配置的坑
    return false与return true的区别
    什么是DOM,DOM level 123 的区别是什么
    页面重绘和回流以及优化
    时代人物之任正非
    Adriod与HTML+JS的交互
  • 原文地址:https://www.cnblogs.com/zhouhao123/p/10103518.html
Copyright © 2011-2022 走看看