我想保存从javascript通过ajax传递给我数据库的对象数组。这是我的观看代码:
data2 = json.loads(request.raw_get_data)
for i in data2:
print(key)
obj = ShoppingCart(quantity = i.quantity , user_id = 3, datetime = datetime.now(), product_id = i.pk)
obj.save()
return render_to_response("HTML.html",RequestContext(request))
在第一行之后,我在我的字典中得到这个:
[{'model': 'Phase_2.product', 'fields': {'name': 'Bata', 'category': 2, 'quantity': 1, 'subcategory': 1, 'count': 2, 'price': 50}, 'imageSource': None, 'pk': 1}]
(现在阵列中只有一个对象)
我希望能够访问数量,ID等单个字段,以便将数据保存到我的数据库中。当我调试此代码时,它在'i'上给出了名称错误。我也尝试访问过这样的字段:data2[0].quantity
但它会出现此错误:{AttributeError}dict object has no attribute quantity
。
编辑代码:
for i in data2:
name = i["fields"]["name"]
obj = ShoppingCart(quantity = i["fields"]["quantity"] , user_id = 3, datetime = datetime.now(), product_id = i["fields"]["pk"])
obj.save()
答案 0 :(得分:1)
它可能会帮助您以正确的格式显示返回的dict:
[
{
'model': 'Phase_2.product',
'fields': {
'name': 'Bata',
'category': 2,
'quantity': 1,
'subcategory': 1,
'count': 2,
'price': 50
},
'imageSource': None,
'pk': 1
}
]
您出错的最可能原因是您尝试访问内部'fields'
字典的值,就好像它们属于外部i
字典一样。
即
# Incorrect
i["quantity"]
# Gives KeyError
# Correct
i["fields"]["quantity"]
修改强>
您的更新中存在同样的问题:
# Incorrect
i["fields"]["pk"]
# Correct
i["pk"]
"pk"
字段位于外部字典中,而不是内部"fields"
字典。
答案 1 :(得分:0)
您可以尝试:
i['fields']['quantity']
json.loads()返回一个字典,应该通过键访问。