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

    自定义 序列化 组件

    from rest_framework import serializers
    from app01 import models
    
    class BookSerializer(serializers.Serializer):
        id = serializers.IntegerField(read_only=True)
        title = serializers.CharField(required=False, allow_blank=True, max_length=100)
        ############    一对一
        # 这是一个 一对多字段
        # 这个名字 一定要和 orm 里的字段对上
        # 一对多  直接用 对象.publish.email  就出来   但是表里要有 显示的 def __str__(self)  , return self.name publish就显示name了
    
        publish = serializers.CharField(max_length=34,)
    
        # -------- 这样也可以   source="publish.name"  就是 直接向source 里取值 不会根据 变量名取值了
    
        publish = serializers.CharField(max_length=34,source="publish.name")
    
        ###########多对多
        authors=serializers.SerializerMethodField()
    
        def get_authors(self,obj):
            ret = []
            for i in obj.authors.all():
                ret.append(i.name)
            return ret

    用法

    更简洁的序列化类   serializers.ModelSerializer

    只需要把 字段 按照列表的形式给 fields 就可以了

    多对多 一对多  也是自己定义 

    ###########多对多
        authors=serializers.SerializerMethodField()
    
        def get_authors(self,obj):
            ret = []
            for i in obj.authors.all():
                ret.append(i.name)
            return ret

     

    
    
    

    __all__    就是把所有的字段 显示出来

    
    
    
  • 相关阅读:
    地址栏中提交中文参数乱码问题
    拼接html字符串时单引号问题
    细线表格的制作
    盒子模型
    盒子间距离的计算规则:
    正则表达式
    轻便+智能:史上最酷恒温器Nest 2.0!
    医疗的未来,是身体控制大权的争夺战
    而立之年话沧桑
    刘晓明大使在《电讯报》的英文原文
  • 原文地址:https://www.cnblogs.com/jiangchunsheng/p/10087300.html
Copyright © 2011-2022 走看看