You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django/DRF中Response对象返回多字段报语法错误如何解决

你遇到的语法错误是因为没有将需要返回的多个字段包装为Python字典,DRF的Response类第一个参数接收的是需要序列化为响应体的可序列化数据,多个字段需要统一放到同一个字典结构中传入。

你可以修改为如下写法实现返回多个指定字段的效果:

return Response({
    'test': self.get_serializer(test, context={'request': self.request}).data,
    'last_question_id': last_question
})

错误说明

  • 你最初的写法是直接将键值对作为独立参数传入Response,既不符合Python基础语法,也不符合DRF Response的参数规则,所以直接触发语法错误。
  • 你后续修改的可运行写法存在逻辑错误:你把last_question作为Response的第二个参数传入,而Response的第二个参数实际是status(HTTP响应状态码),此时响应体仅会返回序列化后的test数据,不会携带last_question_id字段,同时HTTP状态码会被设为last_question的取值,完全不符合你的预期。

补充说明

Response的常用参数规则:

  • 第一个位置参数data:接收字典、列表等可序列化的Python对象,最终会被序列化为JSON等格式的响应体
  • 第二个位置参数status:指定HTTP响应状态码,默认值为200

内容的提问来源于stack exchange,提问作者Chainsaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:48:05