0
点赞
收藏
分享

微信扫一扫

drf对返回数据进行修改的两种方法

船长_Kevin 2022-02-10 阅读 66
测试用例

1、场景:一个接口可以有多个测试用例。例如只输入字段A,只输入字段B等。但是我们需要知道这个接口有多少用例

我们可以在view进行修改,返回数据在response.data['results']中,通过将testcase中的interface_id等于返回数据中的id,并计算数量,将该数量,返回item['testcases']

  def list(self, request, *args, **kwargs):
        response = super().list(request, *args, **kwargs)
        for item in response.data['results']:
            item['testcases'] = Testcases.objects.filter(interface_id=item.get('id')).count()
            
        return response

2、也可以在serializers中进行修改,to_representation函数,复制返回数据,我们在返回给前端之前,对数据进行修改。

 def to_representation(self, instance):
        data = super().to_representation(instance)
        data['testcase'] = instance.testcases_set.count()
        
        return data

但是要注意,list方法,只对list有效,但是to_representation对所有的create、update均有效

举报

相关推荐

0 条评论