Django - 如何从js文件中获取响应变量?

时间:2012-11-29 17:54:11

标签: jquery django django-views simplejson

我从视图中向jquery端发送变量。我想要的是在我的js文件中使用和使用该值。我试过$ .post或response.xx但是没有用。这是我的相关观点部分:

                try:
                    post = Post(title=title, body=body, isdraft=isdraft, owner=owner)
                    post.save()
                except:
                    post = None
                json_dump = simplejson.dumps(post.id)
                return HttpResponse(json_dump, mimetype='application/json')

我可以在firebug的回复部分看到post.id。但我如何在我的js文件中使用该值。我想做的是:

        var auto_save_id = $('#auto_save_id').val();
        if (VALUE_FROM_JSON)){
            auto_save_id = VALUE_FROM_JSON;
        }

谢谢

编辑:这是我所有相关的观点部分:

if 'auto_save_id' in request.POST:
        if request.POST['auto_save_id'] == "0":
            title = request.POST['title']
            body = request.POST['body']
            get_isdraft = request.POST['isdraft']
            if get_isdraft == "True":
                isdraft = True
            else:
                isdraft = False
            owner = request.user
            if request.is_ajax():
                try:
                    post = Post(title=title, body=body, isdraft=isdraft, owner=owner)
                    post.save()
                except:
                    post = None
                json_dump = simplejson.dumps(post.id)
            return HttpResponse(json_dump, mimetype='application/json')
        else:

            post_id = request.POST['auto_save_id']
            title = request.POST['title']
            body = request.POST['body']
            get_isdraft = request.POST['isdraft']
            if get_isdraft == "True":
                isdraft = True
            else:
                isdraft = False
            owner = request.user
            post = Post.objects.get(id=eval(post_id))
            if request.is_ajax():
                post.title = title
                post.body = body
                post.isdraft = isdraft
                post.owner = owner
                post.save()
                json_dump = simplejson.dumps(post.id)
            return HttpResponse(json_dump, mimetype='application/json')

我有一个隐藏的输入,其值为“0”。在第一次加载页面时,值为“0”10秒后,auto_save函数运行并发送数据进行查看。在视图中,我检查auto_save_id = 0:如果是,我创建新帖子并将该帖子的id发送到模板端。在那之后,每10秒ajax必须更新该帖子。为了防止每10秒创建一个新帖子,我需要保存帖子的ID。

我希望这很清楚。

1 个答案:

答案 0 :(得分:1)

首先,我想您想要将字典发送到simplejson.dumps(),如:

json_dump = simplejson.dumps({'pid': post.id})

然后,在你的javascript函数中,你将获得你的argument.pid的id,如:

function myCallback(data){
    alert(data.pid);
}