所以,我的代码基于 Trey 的解决方案:http:
//solutions.treypiepmeier.com/2009/12/10/using-jquery-autocomplete-with-django/
脚本是:
<script>
$(function() {
$('#id_members').autocomplete('{{ object.get_absolute_url }}members/lookup', {
dataType: 'json',
width: 200,
parse: function(data) {
return $.map(data, function(row) {
return { data:row, value:row[1], result:row[0] };
});
}
}).result(
function(e, data, value) {
$("#id_members_pk").val(value);
}
);
}
);
</script>
意见.py:
def members_lookup(request, pid):
results = []
if request.method == "GET":
if request.GET.has_key(u'q'):
value = request.GET[u'q']
# Ignore queries shorter than length 1
if len(value) > 2:
model_results = Member.objects.filter(
Q(user__first_name__icontains=value) | Q(user__last_name__icontains=value)
)
results = [ (x.user.get_full_name(), x.id) for x in model_results ]
json = simplejson.dumps(results)
print json
return HttpResponse(json, mimetype='application/json')
问题是:
它在初始查找后停止细化搜索结果。例如:
如果我设置 len(value) > 2,在我输入第三个字符后,它会给我一个建议列表。但如果我继续输入第 4 个或第 5 个字符,建议列表不会改变。
关于为什么会这样的任何建议?