我在一个Django项目中工作,其中一个功能是用户可以搜索一个名称(使用表单),视图将在数据库中搜索该名称(经过一些转换),结果将显示在表单下方。
目前,这是不必要的,整个页面加载每次搜索提交.我在apply approach使这个动态.问题是,当我返回搜索结果作为JsonResponse,我无法看到数据在approach的成功函数.
视图.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)
字符串
Main.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;
});
});
型
1条答案
按热度按时间cwdobuhd1#
您的查询是否在终端中打印?
Friend.objects.filer
使用filter
而不是filer
,使用type: 'post'
而不是method: 'post',
,并添加data: $(search).serialize(),
而不是data: $(this).serialize(),