Python 我的ajax搜索框在django中不起作用

Python 我的ajax搜索框在django中不起作用,python,ajax,django,search,Python,Ajax,Django,Search,我正在开发一个项目与django,是一个电子商务商店。我想实现一个搜索框来搜索上面的产品 我已经用ajax开发了,但目前我正在搜索一个产品。它向我展示了我所有的产品,而不仅仅是我想要的产品 这是我对搜索栏的看法: def searchBar(request, option): busqueda = request.POST.get('busqueda', '') categoria = Clasificacion.objects.filter(existencia=True)

我正在开发一个项目与django,是一个电子商务商店。我想实现一个搜索框来搜索上面的产品

我已经用ajax开发了,但目前我正在搜索一个产品。它向我展示了我所有的产品,而不仅仅是我想要的产品

这是我对搜索栏的看法:

def searchBar(request, option):

    busqueda = request.POST.get('busqueda', '')
    categoria = Clasificacion.objects.filter(existencia=True)
    items = Articulo.objects.filter(nombre_producto__icontains = busqueda)
    contexto = {
        'items':items,
        'categoria':categoria,
    }
    return render(request, 'adminview/article.html', contexto)
这是html,表单调用视图:

<form action="{% url 'adminview:searchBar' option=1 %}" method="get" class="d-none d-sm-inline-block form-inline mr-auto ml-md-0 my-2 my-md-20 navbar-search">
            <div class="input-group">
              <input type="text" id="busqueda" class="form-control bg-light border-1 small" placeholder="Buscar producto..." aria-label="Search" aria-describedby="basic-addon2" name="busqueda">
              <div class="input-group-append">
                <button class="btn btn-primary" type="submit">
                  <img src="{% static 'img/search.png'%}"width="20px" height="20px" />
                </button>
              </div>
            </div>
          </form>
   ...
   <script src="{% static 'js/search.js'%}"></script>

希望你能帮助我,谢谢

您混淆了GET和POST请求

type: "POST",
应该是

type: "GET"
busqueda = request.GET.get('busqueda', '')

应该是

type: "GET"
busqueda = request.GET.get('busqueda', '')

您混淆了GET和POST请求

type: "POST",
应该是

type: "GET"
busqueda = request.GET.get('busqueda', '')

应该是

type: "GET"
busqueda = request.GET.get('busqueda', '')

如果您正在取回数据,并且数据是正确的,但没有被过滤到正确的子集,那么问题很可能出在您的
搜索栏
视图中。您可能应该为它编写一些单元测试,以验证添加每个键入的字符后会发生什么。如果用户键入的速度比ajax调用快,可能会发生什么?我认为数据是正确的,因为如果搜索“lavadora”,我会得到url“search/ajax1/?busqueda=lavadora”。但是如果我写一个单位是一样的。你肯定首先会得到
127.0.0.1:8000/adminiview/search/ajax1/?busqueda=L
,然后
127.0.0.1:8000/adminiview/search/ajax1/?busqueda=La
,然后
127.0.0.1:8000/adminiview/search/ajax1/?busqueda=Lav
,等等,不?当用户按下提交按钮时,如果我写的话,就会得到整个单词“Lavadora”和我按下按钮,我得到127.0.0.1:8000/adminview/search/ajax1/?busqueda=Lavadora您正在用ajax发送POST数据,但要进入表单。将表单更改为具有
method=“POST”
,您应该可以开始了。如果这不起作用,您需要对您的问题进行一些改进(即,删除与您看到的特定问题无关的所有内容)。如果您正在返回数据,并且数据是正确的,但没有被过滤到正确的子集,那么问题很可能出现在您的
搜索栏
视图中。您可能应该为它编写一些单元测试,以验证添加每个键入的字符后会发生什么。如果用户键入的字符比n您的ajax调用..?我认为数据是正确的,因为如果搜索“lavadora”,我会得到url“search/ajax1/?busqueda=lavadora”“。但是如果我写一个单位是一样的。当然你首先会得到
127.0.0.1:8000/adminview/search/ajax1/?busqueda=L
,然后
127.0.0.1:8000/adminview/search/ajax1/?busqueda=La
,然后
127.0.0.1:8000/adminview/search/ajax1/?busqueda=Lav
,等等,不?当用户按下提交按钮时,如果我写的话,就会得到整个单词。”“Lavadora”和我按下按钮,我得到127.0.0.1:8000/adminview/search/ajax1/?busqueda=Lavadora您正在用ajax发送POST数据,但要进入表单。将表单更改为具有
method=“POST”
,您应该可以开始了。如果这不起作用,您需要对您的问题进行一些改进(即,删除与您看到的特定问题无关的所有内容)。是的,您是对的,我混淆了GET和POST请求。我更正了这些请求,它就工作了。谢谢!是的,您是对的,我混淆了GET和POST请求。我更正了这些请求,它就工作了。谢谢!。