Django测试-发送包含整数的数组的数组

时间:2018-12-15 13:37:05

标签: django rest api testing frameworks

当前,我正在尝试将包含整数的数组的数组发送到我的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 ...?

谢谢!

1 个答案:

答案 0 :(得分:2)

在序列化器中,添加以下字段:

data = serializers.JSONField()

在您的方案中,没有必要访问序列化程序中的self.context['request'].data。相反,您应该访问validated_data。添加JSONField后,通过validated_data访问数据字段,您应该找到列表列表。

validated_data["data"]