[英]How to display search results with ajax in django project?
我在 Django 项目中工作,其中一个功能是用户可以搜索名称(使用表单),视图将在数据库中搜索该名称(经过一些转换),结果将显示在表单下方。
目前,每次提交搜索时都需要加载整个页面。 我正在申请 ajax 以使其充满活力。 问题是当我将搜索结果作为JsonResponse返回时,无法看到ajax的成功function中的数据。
视图.py
def indexView (request):
form = FriendForm ()
friends = Friend.objects.all ()
return render (request, "index.html", {"form": form, "friends": friends})
def searchFriend(request):
if request.method =="POST":
form = FriendForm (request.POST)
if form.is_valid():
if request.is_ajax():
name = form.cleaned_data['name']
query = Friend.objects.filer(first_name__contains=name)
print(query)
return JsonResponse(list(query), safe=False)
else:
return JsonResponse(form.errors)
主.js
$(document).ready(function() {
$("#form1").submit(function() { // catch the form's submit event
var search = $("#searchField").val();
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the form data
method: 'post',
dataType: 'json',
url: "search/ajax/friend/",
success: function(data) { // on success..
console.log(data)
}
});
return false;
});
});
您的查询是否在终端中打印? Friend.objects.filer
使用filter
而不是filer
并使用type: 'post'
而不是method: 'post',
并添加data: $(search).serialize(),
而不是data: $(this).serialize(),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.