django - Django 测试 - 发送包含整数的数组数组
问题描述
目前我正在尝试将包含整数的数组数组发送到我的 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...?
谢谢和问候!
解决方案
在您的序列化程序中,添加以下字段:
data = serializers.JSONField()
self.context['request'].data
在您的场景中访问您的序列化程序是没有意义的。相反,您应该访问validated_data
. 添加后JSONField
,通过访问您的数据字段validated_data
,您应该会找到一个列表列表。
validated_data["data"]
推荐阅读
- regex - 正则表达式中的逗号分隔值
- python - 在 django 中打印 pdf 时出现此错误,错误状态如下模块“'urllib.request' has no attribute 'splithost'”
- c - OpenGL三角形旋转错误
- python - 如何查找源 URL 以抓取网站
- android - Square POS API - 交易与支付 + 已弃用的端点?
- jquery-mobile - 如果网站是网络网站,如何应用 data-mini="true"(而不是在移动设备上应用)
- wordpress - 在 Wordpress 媒体库中搜索多个文件
- c# - 将 ASP.NET Core razor 页面中的下拉列表绑定到 ado.net 存储过程
- python - Selenium 找不到元素,尽管 xpath 在开发人员工具中工作
- dataweave - 有没有办法使用 mule 4 中的 dataweave 2.0 在 mule 4 中合并两个管道分隔的 Csv 文件