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>
我知道有几篇关于自动完成和 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>