postman django rest framework POST错误.当我在一个JSON中发送一个JSON/字典时,它返回:“不是有效的字符串,”

d7v8vwbk  于 2022-11-07  发布在  Postman
关注(0)|答案(1)|浏览(158)

我正在尝试让这个测试API工作,它非常简单,模型只包含一个类和两个字段。我的视图集继承自ModelViewset,我添加了(为了使它更显式,并在未来进行一些更改)列表和创建函数。我可以成功地发布一些JSON,但当我尝试发布这个有“嵌套json”的JSON时,它返回

"Not a valid string."

下面是代码和JSON:
views.py:

class SessionViewset(viewsets.ModelViewSet):
    """"
    A simple viewset for listing or retrieving 'sessions'
    """
    queryset = Session.objects.all()
    serializer_class = SessionSerializer

    def list(self, request):
        queryset = Session.objects.all()
        serializer = SessionSerializer(queryset, many=True)
        return Response(serializer.data)

    def create(self, request, *args,**kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

JSON格式:

{
    "meta":"aca va la metadata",
    "reunion":{"juan":500,
            "pedro":300,
            "jose":1000}

}

并返回:

{
    "reunion": [
        "Not a valid string."
    ]
}

屏幕截图:

型号:models
序列化程序:serializers
你知道是否有任何我不知道的限制,或者我如何解决这个问题?谢谢
尝试将该JSON POST到API端点,并显示所述错误响应

juud5qan

juud5qan1#

@MS25正如我在注解中提到的,您的模型具有作为CharField的重聚,并且您正在向它发送对象数据类型。
如果你还想把同样的数据发送给同学聚会,那就试试沿着的方法:

{
    "meta":"aca va la metadata",
    "reunion":JSON.stringify({"juan":500,
            "pedro":300,
            "jose":1000})
}

我不确定结果,也许它会起作用,也许不会。

相关问题