zoukankan      html  css  js  c++  java
  • 序列化正反向查询

    序列化(正向查询)

    from rest_framework import serializers
    from users.models import UserInfo
    
    
    ## 正向查询
    class UserInfoSerializer(serializers.Serializer):
        # 类名小写.外键字段
        goods = serializers.CharField(source='goods.type_name',required=False)       # 显示一对多字段名称
    
    
        class Meta:
            model = UserInfo
    
    

    反向查询

    • 反向查询是包含关系,eg:路径-->阶段-->课程,所以在JieDuanSerializer导入 model/JieDuan
    • eg:JieDuan().外键字段 获取课程序列化中的所有字段数据,eg:jieduan = JieDuanSerializer(many=True)
    # 路径
    class PathSerializer(serializers.ModelSerializer):
    
        class Meta:
            model = Path
            fields = '__all__'
    
    
    class JieDuanSerializer(serializers.ModelSerializer):
        courses = CourseSerializer(many=True)
    
        class Meta:
            model = JieDuan
            fields = '__all__'
    
    
    class PathDeepSerializer(serializers.ModelSerializer):
        jieduan = JieDuanSerializer(many=True)
    
        class Meta:
            model = Path
            fields = '__all__'
    
    

    一对多序列化(反向查找)

    ''' 一对多序列化(反向查找)'''
    class UserTypeSerializer(serializers.Serializer):
        type_name = serializers.CharField()
        # 法1一对多关联对象序列化:此字段将被序列化为关联对象的主键
        userinfo_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True)
    
        # 法2一对多关联对象序列化:此字段将被序列化为关联对象的字符串表示方式(即__str__方法的返回值)
        # userinfo_set = serializers.StringRelatedField(read_only=True,many=True)
        # 法3一对多关联对象序列化:使用关联对象的序列化器
        # userinfo_set = UserInfoSerializer(many=True)
    
    
     
     
     
  • 相关阅读:
    送走2015,迎来2016
    Android-Volley网络通信框架(StringRequest & JsonObjectRequest)
    Mac上配置 Ruby on Rails和Git
    学习Javascript闭包(Closure)
    cocos2d-x 学习资源整理(持续更新...)
    android自己定义刷新类控件
    awk条件语句
    Leetcode 236 Lowest Common Ancestor of a Binary Tree
    Linux查看当前正在执行的进程
    Thinking in UML 学习笔记(三)——UML核心视图之类图
  • 原文地址:https://www.cnblogs.com/qx1996liu/p/13962467.html
Copyright © 2011-2022 走看看