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均有效