jquery ui自动完成结果不会显示在html下拉列表中

时间:2015-07-24 19:01:46

标签: javascript jquery html ajax django

这是我的django查看ajax请求函数:

def get_town(request):
    if request.is_ajax():
        q = request.GET.get('term', '')
        towns = Town.objects.filter(name__icontains=q)
        results = []
        for name in towns:
            name_json = {}
            name_json['name'] = name.name
            results.append(name_json)
        data = json.dumps(results)
    else:
        data = 'fail'
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)

网址和一切设置都很好。

我的自动填充是这样的:

$(function() {
  $("#id_town").autocomplete({
    source: "/api/get_town/",
    minLength: 3,
  });
});

但是,您可以从下面的图片中看到,结果虽然已返回并且可从请求中获得,但不会显示在下拉列表中。根据下图中输入框中输入的键,我得到的结果是:[{"name": "Densuano"}]

那么问题是什么?为什么不显示下拉列表?

enter image description here

1 个答案:

答案 0 :(得分:2)

我想通了:

name_json['name'] = name.name

是罪魁祸首。上面是一个关键的价值表,自动完成,不知何故无法解释。我改为

name_json = name.name

并且有效。