【问题标题】:Django - How to get a response variable from js file?Django - 如何从 js 文件中获取响应变量?
【发布时间】:2012-11-29 17:54:11
【问题描述】:

从我的角度来看,我正在向 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')

我可以在萤火虫的响应部分看到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。

我希望这很清楚。

【问题讨论】:

  • i tried $.post or response.xx but didn't work 是什么意思?
  • 我尝试了 $.post('json_dump') (也没有'')和 response.json_dump 从 js 文件中获取该值

标签: jquery django django-views simplejson


【解决方案1】:

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

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

然后,在您的 javascript 函数中,您将使用您的 argument.pid 获取 id,例如:

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

【讨论】:

  • 没问题,快乐编码! ;-)
猜你喜欢
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
相关资源
最近更新 更多