美文网首页
Django序列化 source指定外键表字段来源

Django序列化 source指定外键表字段来源

作者: 梨花菜 | 来源:发表于2020-08-23 12:59 被阅读0次

model

# case_step model
class CaseStep():
   class Meta:
        db_table = "case_step"

    name = models.CharField("用例名称", null=False, max_length=100)
    # Case主键作为外键
    case = models.ForeignKey(Case, on_delete=models.CASCADE, db_constraint=False)
    source_api_id = models.IntegerField("api来源", null=False)

# case model
class Case(BaseTable):
   class Meta:
        db_table = "case"
   name = models.CharField("用例名称", null=False, max_length=100)
    ...
    tag = models.IntegerField("用例标签", choices=tag, default=2)

序列化

class APISerializer(serializers.ModelSerializer):
    cases = serializers.SerializerMethodField()

    class Meta:
        model = models.API
        # fields = '__all__'
        fields = ['id', 'name',..., 'cases']
    def get_cases(self, obj):
        # 查询副表,为了获取case_id
        cases = models.CaseStep.objects.filter(source_api_id=obj.id)
       # 通过自定义字段来源的序列化返回case model中的case_name, case_id
        case_id = APIRelatedCaseSerializer(many=True, instance=cases)
        return case_id.data
class APIRelatedCaseSerializer(serializers.Serializer):
    # 指定字段来源是case model中的name, case要用小写,对应case model中的db_name
    case_name = serializers.CharField(source='case.name')  
    case_id = serializers.CharField(source='case.id')

    class Meta:
        fields = ['case_id', 'case_name']

相关文章

  • Django序列化 source指定外键表字段来源

    model 序列化

  • orm查询操作

    单表查询操作 外键的跨表查询 正向查询(在有外键字段的表向没有的表查询) 反向查询(没有外键的字段向有外键字段的表...

  • 草稿四

    ● 外键的删除操作---on_delete参数指定 <1> models.CASCADE---级联删除外键表的字段...

  • DjangoWeb开发--增加用户字段

    DjangoWeb开发--增加用户字段 在django默认的用户表中增加字段比如用户简介,QQ号。 1.使用外键扩...

  • SQL数据库的、外键和查询

    外键 增加外键 创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) referenc...

  • 外键约束

    外键的定义: 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。 外键的作用 ...

  • 外键、联合查询、子查询

    1、外键: 增加外键 创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) refer...

  • Django REST Framework 获得外键的值

    Python 3.5Django==1.11djangorestframework==3.6.2 问题:外键序列化...

  • 2018-09-03:外键

    外键:若一张表中有一个非主键字段指向了别一张表中的主键,则将该字段叫做外键。 一张表中可以有多个外键。...

  • 外键

    外键的使用: FOREIGN KEY(XX) REFERENCES YYY(ZZZ); B表的外键字段不能为该表的...

网友评论

      本文标题:Django序列化 source指定外键表字段来源

      本文链接:https://www.haomeiwen.com/subject/fdvijktx.html