如何在Django(Python)中通过jQuery接收列表

1 投票
4 回答
2186 浏览
提问于 2025-04-18 07:18

我在用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自动补全。

撰写回答