如何在Django(Python)中通过jQuery接收列表
我在用Django(Python)发送一个列表到jQuery,但在接收的时候出现了一些错误。
这是我在Python中发送的内容。
hubcode_list = ['a','b']
ctx = {'form':form, 'hubcode_list' : hubcode_list, 'admin_permission' : admin_permission}
return render(request, 'dummy/config.html', ctx)
jQuery代码:
var hubcode_list = {{ hubcode_list }}
它返回了一个错误,提示:
SyntaxError: syntax error
var hubcode_list = ['a', 'b']
当我使用 escapejs
时,
var hubcode_list = {{ hubcode_list|escapejs }}
它抛出了一个错误。
SyntaxError: illegal character
var hubcode_list = [\u0027a\u0027, \u0027b\u0027]
我该如何从服务器(Python)接收一个列表呢?我需要实现一个自动完成的功能,需要传递一个标签列表。
$( ".hubcode_list" ).autocomplete({
source: hubcode_list
});
4 个回答
3
hubcode_list = [str(i) for i in hubcode_list] #unicode string not understood by javascript
{{ hubcode_list|safe }}
好的方法是传递 json
数据。
>>> import json
>>> hubcode_list = ['a','b']
>>> json.dumps(hubcode_list)
>>> '["a", "b"]'
jQuery:
var hubcode_list = JSON.parse(hubcode_list)
如果你想实现 jquery Autocomplete
(自动补全功能),你应该通过 AJAX
来实现。你不应该一次性传递所有的自动补全数据。如果数据有成千上万条怎么办? 可以参考这个教程,了解如何在Django中实现jquery自动补全。