将变量从django传递给jquery?

时间:2012-01-21 00:52:04

标签: jquery django autocomplete

我试图用文本文件创建一个数组我的django / python代码是

f = open('text file path here', 'r')
names = []
for line in f:
    names.append(line)
f.close()
return render_to_response('frontend.html', {'names'}, context_instance=RequestContext(request))

然后我的frontend.html获取数组,名称,并使用数据进行自动填充,其格式为id =' status':

<script>

var names = {{ names }};

$(document).ready(function(){

            $("#status").autocomplete(names);
       });

</script>

当我开始输入某人的名字时,frontend.html上的字段中没有任何内容发生。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以在url.py内构建网址端点,在视图中,您可以使用JSON中的names返回响应,并使用getJSON调用在模板中获取它们。

查看

from django.utils import simplejson

def names(request):
   ..build your name collection
   data = simplejson.dumps(names)
   return HttpResponse(data, mimetype='application/javascript')

<强>模板

$.getJSON('/your_json_endpoint/names/', function(data) {
// data contains your names serialized

});

您需要在URLConf https://docs.djangoproject.com/en/1.3/topics/http/urls/

中设置端点

请点击此处查看完整示例:http://mitchfournier.com/2011/06/06/getting-started-with-ajax-in-django-a-simple-jquery-approach/

答案 1 :(得分:0)

这一行错了:

return render_to_response('frontend.html', {'names'}, context_instance=RequestContext(request))

- 你在哪里看到它传递了“名字”的?你想要:

return render_to_response('frontend.html', {'names': names}, context_instance=RequestContext(request))

实际上,你的代码甚至不是有效的python语法,所以我怀疑你的copypasting错误......