当前,我正在尝试将包含整数的数组的数组发送到我的rest api,这是我测试的一部分:
res = self.client.post(
'/data',
{
'data': [
[1,2,3],
[4,5,6]
]
}
)
在我的序列化程序中,我尝试打印数据:
def create(self, validated_data):
print(self.context['request'].data)
print(self.context['request'].data['data'])
但是我得到:
<QueryDict: {'data': ['[1, 2, 3]', '[4, 5, 6]']}>
[4, 5, 6]
预期:
{'data': [[1, 2, 3], [4, 5, 6]]}
[[1, 2, 3], [4, 5, 6]]
怎么可能?
我发送的格式错误还是我以错误的方式访问json ...?
谢谢!
答案 0 :(得分:2)
在序列化器中,添加以下字段:
data = serializers.JSONField()
在您的方案中,没有必要访问序列化程序中的self.context['request'].data
。相反,您应该访问validated_data
。添加JSONField
后,通过validated_data
访问数据字段,您应该找到列表列表。
validated_data["data"]