繁体   English   中英

如何在 django 项目中使用 ajax 显示搜索结果?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM