“TypeError”类型的对象不是 JSON 可序列化的

新手上路,请多包涵

我尝试使用 Django rest 框架构建 API

我得到了对象

type 'TypeError' is not JSON serializable

我应该怎么做才能解决?

这是我的 view.py

 class NewsViewSet(viewsets.ModelViewSet):
    queryset = News.objects.all()
    serializer_class = NewsSerializer

    def list(self, request, **kwargs):
        try:
            nba = query_nba_by_args(**request.query_params)
            serializer = NewsSerializer(nba['items'], many=True)
            result = dict()
            result['data'] = serializer.data
            result['draw'] = nba['draw']
            result['recordsTotal'] = nba['total']
            result['recordsFiltered'] = nba['count']
            return Response(result, status=status.HTTP_200_OK, template_name=None, content_type=None)

        except Exception as e:
            return Response(e, status=status.HTTP_404_NOT_FOUND, template_name=None, content_type=None)

原文由 Ray 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 380
1 个回答

Django 无法将异常对象转换为 JSON 格式并引发错误。要修复它,您应该将错误转换为字符串并将结果传递给响应:

 except Exception as e:
    return Response(str(e), status=status.HTTP_404_NOT_FOUND, template_name=None, content_type=None)

原文由 neverwalkaloner 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题