Python 如何在Django中发布用作对象的参数
我想向我的服务器发送一个ajax Post请求,其中包含一个要像对象一样使用的参数:Python 如何在Django中发布用作对象的参数,python,django,frontend,Python,Django,Frontend,我想向我的服务器发送一个ajax Post请求,其中包含一个要像对象一样使用的参数: student_name = request.data.get('student_info', {}).get('name') 当我像这样发送参数时: 学生信息:{“姓名”:“汤姆”,“年龄”:20} 它会产生以下错误: AttributeError: 'unicode' object has no attribute 'get' 最好的答案是我不需要更改后端, 并通过正确发送数据来解决我的问题 关于,从前
student_name = request.data.get('student_info', {}).get('name')
当我像这样发送参数时:
学生信息:{“姓名”:“汤姆”,“年龄”:20}
它会产生以下错误:
AttributeError: 'unicode' object has no attribute 'get'
最好的答案是我不需要更改后端,
并通过正确发送数据来解决我的问题
关于,从前端发布时,request.data只是一个字符串 你可以这样做
student_name = request.data.get('student_info', {})['name']
你也可以
import json
student_name = json.loads(request.data.get('student_info')).get('name')
但是,如果request.data中没有学生信息,则可能会出现错误
先前的回答是我这边的错误。代表我对此表示歉意。从前端发布时,request.data只是一个字符串 你可以这样做
student_name = request.data.get('student_info', {})['name']
你也可以
import json
student_name = json.loads(request.data.get('student_info')).get('name')
但是,如果request.data中没有学生信息,则可能会出现错误
先前的回答是我这边的错误。代表我对此表示歉意。您需要发送Json内容,而不是关键字符串值:
data: JSON.stringify({"student_info":"{'name':'Tom', 'age': 20}'})
您的错误是request.data.get('student_info',{})
返回一个字符串,这样您就无法使用get('name')检索name
和json.load(request.data.get('student_info',{}))
在Django部分:)您需要发送json内容而不是关键字符串值:
data: JSON.stringify({"student_info":"{'name':'Tom', 'age': 20}'})
您的错误是request.data.get('student_info',{})
返回一个字符串,这样您就无法使用get('name')检索name
和json.loads(request.data.get('student_info',{}))
在Django部分:)我希望您在前端对数据进行了字符串化。我曾经通过从ajax发送数据解决了这个问题,如下所示:
var js = {"name":"nguyen","age":"1"};
$.post("/", {'data': JSON.stringify(js)}, function(ret){
console.log(ret)
});
我希望你确实在前端整理了你的数据。我曾经通过从ajax发送数据解决了这个问题,如下所示:
var js = {"name":"nguyen","age":"1"};
$.post("/", {'data': JSON.stringify(js)}, function(ret){
console.log(ret)
});
您应该从客户端发送一个JSON对象。设置
Content-Type: application/json
在请求头中,在请求正文中写入对象,如下所示:
{"student_info":{"name":"Tom", "age": 20}}
然后您将直接获得一个对象
很简单:)您应该从客户端发送一个JSON对象。设置
Content-Type: application/json
在请求头中,在请求正文中写入对象,如下所示:
{"student_info":{"name":"Tom", "age": 20}}
然后您将直接获得一个对象
很简单:)如果我说了什么或发了什么错,请告诉我。。。匿名否决票只是懦弱。请告诉我,如果我说了什么或发了什么错。。。匿名的反对票只是懦弱。