Django REST Ex1 Serialization开发序列化器调用及500错误求助
Django REST Serialization 开发问题排查
问题1:WishSerializer实例化触发参数过多报错
- 报错原因:
serializer = WishSerializer(Wish)代码中,你直接将Wish模型类作为参数传入序列化器。DRF序列化器的首个位置参数要求接收模型实例/查询集对象,而非模型类本身,传参不符合要求触发pylint校验报错。 - 修复代码:
# 原错误代码 # serializer = WishSerializer(Wish) # 修正后代码,GET接口返回所有愿望列表 wish_queryset = Wish.objects.all() serializer = WishSerializer(wish_queryset, many=True) - 参数说明:序列化多个对象时必须额外传入
many=True参数,告知序列化器处理的是查询集而非单个实例。
问题2:/wishes GET接口返回500状态码、测试不通过
- 报错原因:问题1的传参错误会直接触发服务端运行时异常,是导致接口返回500的核心原因。
- 修复后效果:
- 无愿望数据时,
Wish.objects.all()返回空查询集,序列化后响应体为预期的空数组[] - 接口正常返回200状态码,
Content-Type自动匹配application/json,完全符合测试用例预期
- 无愿望数据时,
内容的提问来源于stack exchange,提问作者Ashish Jindal
相关产品推荐
相关产品推荐

