Django Haystack自动完成jquery格式

Django Haystack自动完成jquery格式,jquery,django,autocomplete,django-haystack,Jquery,Django,Autocomplete,Django Haystack,我对数据的格式有点困惑,我尝试了文档,JQuery和Haystack都没有成功 我已经设置了自动完成,键入时: autocomplete/?search=foo 结果是: {"results": ["foo1", "foo2", "foo3", "foo4", "foo5"]} 当我尝试检索它并将其用作JQuery autocomplete的源时,如下所示: $('#autocomplete').autocomplete({ source: function (request, r

我对数据的格式有点困惑,我尝试了文档,JQuery和Haystack都没有成功

我已经设置了自动完成,键入时:

autocomplete/?search=foo
结果是:

{"results": ["foo1", "foo2", "foo3", "foo4", "foo5"]}
当我尝试检索它并将其用作JQuery autocomplete的源时,如下所示:

$('#autocomplete').autocomplete({ 
    source: function (request, response) { 
        $.getJSON("/autocomplete/?search=" + request.term, function (data) { 
            response(data); 
        }); 
    } 
});
x = ["foo1", "foo2", "foo3", "foo4", "foo5"];
没有显示结果

如果我创建这样一个变量:

$('#autocomplete').autocomplete({ 
    source: function (request, response) { 
        $.getJSON("/autocomplete/?search=" + request.term, function (data) { 
            response(data); 
        }); 
    } 
});
x = ["foo1", "foo2", "foo3", "foo4", "foo5"];
然后这样称呼它:

$("#autocomplete").autocomplete({
    source: x,
});
它工作得非常好

明确地说,我理解Haystack的
results
是变量名,就像
x
一样。问题是,我似乎无法让它与JQuery一起工作。我看了很多问题,但找不到解决办法


寻找一些方向。

经过几个小时的检查调试程序,确认数据已正确发送等。。我设法找到了一个解决办法,而且很简单

我必须先将这些值存储在数组中,然后再将其返回给JQuery autocomplete函数

基本上:

$('#autocomplete').autocomplete({
 source: function (request, response) {
     $.getJSON("/autocomplete/?search=" + request.term,
     function (data) {
         var array = new Array();

         response($.map(data, function (value, key) {
             array = value;
             return array;
         }));
     });
 },
 minLength: 1,
});
我仍然不明白为什么,但我猜Django根据字典的外观而不是简单的数组或列表返回字典。Dict有键和值,所以我们需要获取值(在我的例子中)并将其放入数组中,以便它作为自动更正的正确输入