【发布时间】:2014-01-16 07:24:32
【问题描述】:
我在我的项目中使用 django。这是我为获取查询建议而创建的视图:
def query_suggestions(request):
if request.GET.has_key('term'):
cols = Col.objects.filter(name__istartswith = request.GET['term'])[:3]
fes = Fe.objects.filter(name__istartswith=request.GET['term'])[:3]
users = User.objects.filter(first_name__istartswith=request.GET['term'])[:3]
json_str = ""
if users:
json_str = json.dumps([{'label': user.first_name, 'value': '/'+ user.username + '/'} for user in users])
if cols:
json_str += json.dumps([{'label': col.name, 'value': col.get_absolute_url()} for col in cols])
if fes:
json_str += json.dumps([{'label': fe.name, 'value': fe.get_absolute_url()} for fe in fes])
return HttpResponse(json_str)
return HttpResponse()
这是使用 jQuery 进行自动补全的脚本:
$("#header-search-input").autocomplete({
source: "/query_suggestions/",
focus: function (event, ui) {
$(event.target).val(ui.item.label);
return false;
},
select: function (event, ui) {
$(event.target).val(ui.item.label);
window.location = ui.item.value;
return false;
}
});
所以,输入值m 返回HttpResponse() 的[{"value": "/moni/", "label": "Moni"}, {"value": "/manisha/", "label": "Manisha"}][{"value": "/col/mira/", "label": "Mira"}]
但是,这不会在search-input-bar 下显示自动完成建议。但是,如果我输入mo,它会返回[{"value": "/moni/", "label": "Moni"}] 以及search-input-bar 下的建议。这是什么原因?
【问题讨论】:
标签: javascript jquery django jquery-ui autocomplete