我正在尝试传递一些额外的键值对并遇到错误。
class execution_details(APIView):
def get(self):
this_job_execution = JExecutionSerializer(this_job_execution)
payload = [{
'binaries': binaries,
'stage_logs': stage_logs,
'job_logs': job_logs,
'external_link': ext_links,}]
return Response(this_job_execution.data + payload)
错误
unsupported operand type(s) for +: 'ReturnDict' and 'list'
我想知道是否存在问题,因为this_job_execution是单个记录而不是具有多个记录的查询集。我知道我过去用查询集做过这个,所以我怀疑这是一个问题。
答案 0 :(得分:3)
问题是你要一起添加列表和字典。如果要更新字典,请使用dict.update()
功能。并在字典中生成结果。
试试这个
class execution_details(APIView):
def get(self):
this_job_execution = JExecutionSerializer(this_job_execution)
payload = {
'binaries': binaries,
'stage_logs': stage_logs,
'job_logs': job_logs,
'external_link': ext_links,}
data = this_job_execution.data
data.update(payload)
return Response(data)
如果x = {“a”:1,“b”:2},y = {“c”:3,“d”:4}则x.update(y)使x = {“a”: 1,“b”:2,“c”:3,“d”:4}
如果要在响应中添加有效负载作为列表,请使用以下
class execution_details(APIView):
def get(self):
this_job_execution = JExecutionSerializer(this_job_execution)
payload = [{
'binaries': binaries,
'stage_logs': stage_logs,
'job_logs': job_logs,
'external_link': ext_links,}]
data = this_job_execution.data
data["payload"] = payload
return Response(data)