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__    就是把所有的字段 显示出来

    
    
    
  • 相关阅读:
    动态规划01背包
    动态规划矩阵连乘
    分治法归并排序
    动态规划最长公共子序列
    贪心算法活动安排
    分治法二分查找
    vue 可拖拽可缩放 vuedraggableresizable 组件常用总结
    rifilter in python discussed in 3delight
    3delight linear work flow
    pixar stereo rendering doc
  • 原文地址:https://www.cnblogs.com/jiangchunsheng/p/10087300.html
Copyright © 2011-2022 走看看