javascript - 在 Django 上使用 Javascript 正确获取查询
问题描述
我正在开发一个网站,我的优先事项之一是具有自动完成功能的动态搜索表等。
我发现这可能使用ajax和 javascript。
每次用户在搜索字段中键入时,我已经实现了一个触发器。
当前的问题是从数据库中获取数据,现在我收到 404 错误,并且没有返回数据。
代码:
视图.py
def search_bib(request):
if request.method == "POST":
search_str=json.loads(request.body).get('searchText')
bib = Bibrest51.objects.all().filter(
autor__starts_with=search_str) | Bibrest51.objects.all().filter(
autor__icontains=search_str)
data = Bibrest51.objects.all()
return jsonResponse(list(data), safe=False)
JS:
const searchField = document.querySelector("#searchField");
searchField.addEventListener("keyup", (e) => {
const searchValue = e.target.value;
if (searchValue.trim().length > 0) {
console.log("searchValue", searchValue);
fetch("bibliografia-search", {
body: JSON.stringify({ searchText: searchValue }),
method: "POST",
})
.then((res) => console.log(res))
.then((data) => {
console.log("data", data);
})
.catch((e) => {
console.log(e);
});
}
});
任何帮助将不胜感激,我是该网站的新手,我希望我没有对这篇文章做任何错事。也感谢改进我的帖子的反馈 - 谢谢!
解决方案
首先,我注意到您的函数返回的数据是所有对象。它应该返回 bib,它是过滤后的结果。
其次,您的路线有问题,因为该功能应该按预期工作
推荐阅读
- aspnetboilerplate - 如何在 ASP.NET Boilerplate 中将 Angular 应用程序部署到 IIS?
- bash - 如何在一个文件中一个一个地运行一组终端命令?
- php - PHP中整数的反向块分割
- powershell - 为什么我的 -match 调用在获取网络驱动器时包含无效项目?
- vba - Excel 2013 VBA 向公式添加新行
- php - 加密事件在 Codeignator 中无法正常工作
- javascript - jQuery 验证方法(必需:false)不起作用
- python - 如何为带有状态的 Keras fit_generator 编写生成器?
- android - 我的应用程序运行成功,但有一些致命错误
- maven - Eclipse 中的 Maven 构建失败(测试和插件)