javascript - 使用 Atlas Search 和 Django 构建自动完成表单元素
问题描述
我想在 Django webapp 中构建一个自动完成表单。我已经能够在搜索栏上查询我的 MongoDB 数据库,但是如何添加自动完成功能?我尝试改编一个使用 Javascript 完成的官方教程:
search_similar.html
:
{% extends "todo/base.html" %}
{% block content %}
<div class="recommendations">
<!-- <div class="login-page"> -->
<div class="form">
<form action="{% url 'search_results' %}" method="get">
<input name="q" type="text" placeholder="Perfume name...">
<input id="perfumename" type ="submit" value="Find Similar Perfumes" autocomplete="nope"/>
</form>
<form class="login-form" action = "similar_results/" method="POST">
<input type="text" placeholder="perfume name"/> <!-- https://www.youtube.com/watch?v=TRODv6UTXpM&ab_channel=ProgrammingKnowledge -->
{% csrf_token %}
<input id="perfumename2" type ="submit" value="Find Similar Perfumes" autocomplete="nope"/>
</form>
</div>
<script>
$(document).ready(function() {
$("#perfumename").autocomplete({
source: async function(request, response){
let data=await fetch(`http://localhost:8000/search_similar?q={request.term}`)
.then(results => results.json())
.then(results => results.map(result => {
return { label: result.name, value: result.name, id:result._id };
}
response(data);
},
minLength=2,
select: function(event, ui){
console.log(ui.item);
}
})
}),
$(document).ready(function() {
$("#perfumename2").autocomplete({
source: async function(request, response){
let data=await fetch(`http://localhost:8000/search_similar?q={request.term}`)
.then(results => results.json())
.then(results => results.map(result => {
return { label: result.name, value: result.name, id:result._id };
}
response(data);
},
minLength=2,
select: function(event, ui){
console.log(ui.item);
}
})
})
</script>
</div>
{% endblock %}
即使我有autocomplete="nope"
第一个搜索栏,仍然会显示默认的 chrome 自动完成功能,并且不会显示我在 MongoDB 中构建的搜索栏。第二个没有显示任何内容,即使我将 id 链接到脚本也是如此。
解决方案
推荐阅读
- javascript - 复制和粘贴功能不适用于 PHP Echo
- string - Pandas - 无法将字符串转换为日期时间
- javascript - 为“粉笔”包动态设置颜色时出现 TypeScript 错误
- r - 创建一个包含 while 循环的每个步骤的列表
- c# - 将 ResouceDictionary 中的样式属性值绑定到 ViewModel 属性
- java - 如何从firebase分配增量ID号
- tensorflow - tf2.0.0正式版中如何打印值?
- magento - 如何在管理面板中显示自定义结帐
- javascript - 从网页中提取数据
- django - 如何将值从一类 django 模型传递给另一类?