我正在尝试解析我的Django视图中的json对象,该视图已经通过post方法通过ajax从客户端传递。
JS:
$.post ('/update_vendor_merchandise_types/', JSON.stringify(json_obj))
;
查看:
def update_vendor_merchandise_types(request):
print json_object
# The output gives me
# QueryDict: <QueryDict: {u'[{"merchandise_id":"3"},{"merchandise_id":"4"}]': [u'']}>
json_object = json.load(request.POST) # Error arises
pass
在注释行'QueryDict' object has no attribute 'read' error
出现。
我做错了什么?
最终,我的目标是获取对merchandise_id值的访问权限。我试试
d = request.POST.iteritems()
for key, value in d:
print value
并期待像
这样的东西3
4
答案 0 :(得分:3)
request.POST
用于表单编码内容。对于JSON,您应该直接访问普通主体:
json_object = json.loads(request.body)
答案 1 :(得分:3)
为什么在将json_obj发送到服务器时将其转换为字符串?我认为你应该这样做:
json_obj = {"key1": "value1", "key2": "value2"}
$.post('/update_vendor_merchandise_types/', json_obj)
在这种情况下,在服务器端,您可以通过以下方式访问发送的数据:
v1 = request.POST["key1"]