首页 > 解决方案 > SerializerMetaclass 类型的对象不是 JSON 可序列化 DRF

问题描述

requests我想使用and对数据进行编码并创建一个 post 方法drf,所以示例是

class ProjectViewSet(viewsets.ModelViewSet):
    logger = logging.getLogger('django')

    """
    API 
    """
    queryset = Project.objects.all()
    serializer_class = ProjectSerializer
    filter_backends = (filters.OrderingFilter,
                       filters.SearchFilter, DjangoFilterBackend)
    filterset_class = ProjectFilter
    ordering_fields = ('name', 'owner', 'project')
    ordering = ('name')
    search_fields = ['name']

    # create new execution for this project
    def create(self, request):
        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid():
            encode_data = json.dumps(serializer)
            response = requests.post(
                url='{}/process'.format(EXAMPLE_URL),
                json=encode_data,
                headers=headers
            )
            logging.debug(f"{self.response}")
            return Response({'response': response})

这个错误

Object of type SerializerMetaclass is not JSON serializable

现在我有点困惑,我想我需要对数据进行编码,因为 JSON 编码是在 Response 对象中完成的,但我无法理解错误,所以有人可以解释一下这里出了什么问题,谢谢。

标签: djangodjango-rest-frameworkpython-requests

解决方案


推荐阅读