本文介绍了解析Django中通过Ajax GET方法发送的json对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了一个Ajax请求,该请求应由Django处理:
I have created an Ajax request which should be processed by Django:
var tracks = [{'artist':'xxx', 'track':'yyy', 'duration':100}, {'artist':'xxx', 'track':'yyy', 'duration':100}, {'artist':'xxx', 'track':'yyy', 'duration':100}]; $.ajax({ type: 'GET', url: ROOT_URL + '/snv/', data: {tracks: tracks}, dataType: 'json' }).done(function (data) { // do something }).fail(function (data) { // do something else });并且我有一个Python函数来检索该数据:
and I have a Python function to retrieve that data:
def snv(request): for track in request.GET: print track但是此函数显示类似:
tracks[1][artist] tracks[0][track] tracks[0][duration] tracks[2][artist] tracks[1][track] tracks[1][duration] tracks[2][duration] tracks[0][artist] tracks[2][track]如果我打印request.GET,我会得到:
If I print request.GET I get this:
<QueryDict: {u'tracks[1][artist]': [u'Artist 02'], u'tracks[0][track]': [u'title 00'], u'tracks[0][duration]': [u'202'], u'tracks[2][artist]': [u'Artist 04'], u'tracks[1][track]': [u'title 02'], u'tracks[1][duration]': [u'506'], u'tracks[2][duration]': [u'233'], u'tracks[0][artist]': [u'Artist 00'], u'tracks[2][track]': [u'title 04']}>如何正确处理我的对象?
How to process my object properly?
推荐答案好,我是这样解决的:
将我的Ajax请求从GET更改为POST, 跟随此以获取CSRF_token, 使用此解析器来解析我的对象, 最后更改了我的Python函数:
changed my Ajax request from GET to POST, followed this to acquire CSRF_token, used this parser to parse my object, and finally changed my Python function:
from django.views.decorators.csrf import csrf_exempt @csrf_exempt def startNewVoting(request): from querystring_parser import parser p = parser.parse(request.POST.urlencode()) for key, track in p['tracks'].iteritems(): print track # save to db...更多推荐
解析Django中通过Ajax GET方法发送的json对象
发布评论