Python 如何在Django中发布用作对象的参数

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' 最好的答案是我不需要更改后端, 并通过正确发送数据来解决我的问题 关于,从前

我想向我的服务器发送一个ajax Post请求,其中包含一个要像对象一样使用的参数:

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}}
然后您将直接获得一个对象


很简单:)

如果我说了什么或发了什么错,请告诉我。。。匿名否决票只是懦弱。请告诉我,如果我说了什么或发了什么错。。。匿名的反对票只是懦弱。