【发布时间】:2021-06-24 00:51:13
【问题描述】:
我正在尝试制作类似于您进行谷歌搜索时的实时搜索功能。搜索按名称查询我数据库中的咖啡馆。
我已经获得了这样的功能,如果整个搜索值与数据库中的咖啡馆名称匹配,它会显示给用户,但我希望这样做,以便在用户键入时检查搜索值,并出现咖啡馆直到用户完成输入(此时应该只剩下一家咖啡馆)。
这是我所拥有的:
$("#search-box").keyup(function() {
search()
});
function search(){
let searchTerm = document.getElementById("search-box").value;
$.ajax({
type: 'GET',
url: '/electra/search/',
data: {
'search_term':searchTerm
},
success: function (data) {
console.log(searchTerm); //refer to below function for the running of this loop
$("#search-results").text(data);
}
});
};
views.py:
def search(request):
template_name = 'testingland/write_image.html'
search_term = request.GET.get('search_term', None)
print(search_term)
qs = mapCafes.objects.filter(cafe_name = search_term)
return JsonResponse([
[cafe.cafe_name, cafe.cafe_address]
for cafe in qs
], safe=False)
我一直在使用 qs 过滤器,但无法找到解决此问题的最佳方法。
【问题讨论】:
-
“逐个字母”是什么意思?听起来它不会提供任何有用的搜索结果。你想要
mapCafes实例,其中cafe_name包含search_term? -
当用户键入时,我希望咖啡馆出现,直到用户完成键入并且应该只剩下一个咖啡馆。我将更新我的 OP 以使其更清晰。
标签: javascript django django-views