Django 和 Jquery 自动完成问题

Django and Jquery Autocomplete Issues

我知道有几篇关于自动完成和 django 的帖子,但我最近进入了 jquery 的领域,不知何故我迷路了。可以想象,我需要以下字段的自动完成功能:

HTML 文件

<div class="ui-widget">
     <input name="user_name"class="form-control "id="company-search">
</div>

  <script type="text/javascript">
            $(function() {
                $("#company-search").autocomplete({
                    source: '{% url 'autocomplete' %}',
                    minLength: 1,
                });
            });
    </script>

URL

path('autocomplete/',views.autocomplete, name='autocomplete')

观看次数

def autocomplete(request):
    data  = request.GET['term']
    forecast = LeadEntry.objects.select_related('lead_id')
    companies = [str(i.lead_id.company).lower() for i in forecast]
    search = [i for i in companies if i.startswith(data.lower()) ]

    result = []
    for company in search:
        data = {}
        data['label'] = company
        data['value'] = company
        result.append(data)
    print(json.dumps(result))
    mimeetype='application/json'
    return HttpResponse(json.dumps(result),mimeetype)

请注意 ajax 部分运行良好,我每次都能看到视图正常工作,我输入了一个新字母,我得到了一个包含正确数据的 json 文件。

其实能看到结果,但是实际值在右上角

我在 javascript 端收到以下错误:

此致

来自 jQuery docs 自动完成的来源 属性 需要一个关键字列表,但你传递给它的是 django url.

你需要先打你的django url 最有可能使用 ajax GET 调用来获取关键字列表,然后将该关键字列表放入自动完成源 属性。

评论区的回答好像解决了问题,为了帮助别人我写在这里:

问题出在jQuery UI版本,使用CDN版本1.13.0 jQuery UI:

<script src = "https://code.jquery.com/ui/1.13.0/jquery-ui.min.js"> </script>