我在模板上使用JQuery Autocomplete,但是当我得到结果时,自动完成仅显示一个项目,尽管获取的结果包含更多的项目。它只显示列表中的第一项!
示例:
如果我的结果列表包含('python','pythonism','pythodus')
并在自动填充中输入'pyt',它只会在下拉列表中显示'python'!
我的自动填充代码:
$(document).ready(function(){
$("#tags1").autocomplete("/taglookup/", {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator:",",
scroll: true,
scrollHeight: 300,
delay: 10
});
});
我的AJAX django视图被调用:
def tag_lookup(request):
# Default return list
results = []
if request.method == "GET":
if request.GET.has_key(u'q'):
value = request.GET[u'q']
# Ignore queries shorter than length 3
if len(value) > 2:
TI = Tag.objects.filter(name__contains=value)
print TI
results = [ x.name for x in TI]
print results #shows me more than one item is returned
return HttpResponse('|'.join(results), mimetype='text/plain')
答案 0 :(得分:2)
伙计们,刚刚发现JQuery Autocomplete插件正在使用需要一个新的行字符作为项目之间的分隔符,所以我已经取代了我的Ajax Django视图来读取这样的内容;
return HttpResponse('\n'.join(results), mimetype='text/plain')
它的工作完美!
感谢。
答案 1 :(得分:0)
看起来HttpResponse
正在执行Something|Something|...
jQuery需要Something,Something,...
。尝试将multipleSeparator
更改为'|'
。此外,由于我不知道在HttpResponse
之前使用印刷品。