haystack自动完成jquery ui无法使其工作

haystack自动完成jquery ui无法使其工作,jquery,django,jquery-ui,autocomplete,django-haystack,Jquery,Django,Jquery Ui,Autocomplete,Django Haystack,我正在尝试传递自定义视图以列表形式生成的数据: def autocomplete(request): sqs = SearchQuerySet().autocomplete(content_auto=request.GET.get('q', ''))[$ suggestions = [result.name_esp for result in sqs] return HttpResponse(suggestions) 但是我不知道如何在脚本区域中定义“建议”作为jQueryUI的源。我只能找到

我正在尝试传递自定义视图以列表形式生成的数据:

def autocomplete(request):
sqs = SearchQuerySet().autocomplete(content_auto=request.GET.get('q', ''))[$
suggestions = [result.name_esp for result in sqs]
return HttpResponse(suggestions)

但是我不知道如何在脚本区域中定义“建议”作为jQueryUI的源。我只能找到jquery ui使用已经定义的列表的示例,如

您需要为后端发出请求,如下所示:

$(function() {
    var availableTags = [];

    $.get( "YOUR BACK-END HERE", function( data ) {
        availableTags  = data;
    });

    $( "#tags" ).autocomplete({
        source: availableTags
    });
});

我没有对此进行测试。

您链接到的jQuery页面有几个使用Ajax请求作为源的示例:单击右侧的“远程数据源”,然后单击底部的“查看源代码”。看起来您只需将
元素添加到
自动完成
函数中,该函数的值是返回数据的URL

除此之外,您还需要确保数据的格式正确:这意味着将其序列化为JSON:

return HttpResponse(json.dumps(suggestions))

在我的回答中,您可以看到一个类似的JSON示例:stackoverflow.com/questions/19662956谢谢Daniel的回答,我已经分析了几个示例,我想我已经差不多做到了。那么,在您返回jsn之后,我是否应该使用source:json.dumps(suggestions)和data:json创建ajax请求?不,您混淆了哪里发生的事情
source
是提供Django自动完成视图的URL。
json.dumps
位出现在Python视图中,代替当前的return语句。。。因此,如果视图(在本例中为“自动完成”)由:url(r'^$',views.autocomplete,name='autocomplete')调用,我必须包括:source:(如果我在本地运行应用程序)?Yes(尽管该值需要加引号)。或者您可以只执行
源代码:'/'
,因为当前页面可能位于同一服务器上,所以您只需要提供一个相对地址。