Python Django没有在AJAX调用中接受GET输入

Python Django没有在AJAX调用中接受GET输入,python,jquery,django,Python,Jquery,Django,我正在尝试获取用户名输入,并在ajax调用中返回,无论是否在Django中获取用户名。但DJango中的方法不接受输入。我在这里分享代码 URL.py url(r'^search_username/$', user.views.search_product, name="search_username"), 脚本+HTML {% load staticfiles %} {% block content %} <form method="post"> {% csrf_

我正在尝试获取用户名输入,并在ajax调用中返回,无论是否在Django中获取用户名。但DJango中的方法不接受输入。我在这里分享代码

URL.py

url(r'^search_username/$', user.views.search_product, name="search_username"),
脚本+HTML

{% load staticfiles %}


  {% block content %}
  <form method="post">
  {% csrf_token %}
  <input name="search" id="search" type="text"/>
  <button type="submit">Sign up</button>
    </form>
  {% endblock %}

Views.py

def search_username(request):
    print('Entered into search')
    username = request.GET.get('search', None)
    print(username)
    data = {
       'is_taken': allproductlist.objects.filter(product_name_english__iexact=username).exists()
    }

    return JsonResponse(data)

问题是它会打印输入到搜索中。但当我打印用户名时,它不会显示任何内容。有人可以指定发生了什么吗?

您的Ajax正在以“用户名”的形式发送数据,但您的Python正在寻找“搜索”。

您的Ajax正在以“用户名”的形式发送数据,但您的Python正在寻找“搜索”。

您正在Ajax请求中发送
用户名,但您在views.py中获得
搜索

username = request.GET.get('username', None)
您可以更新ajax代码:

$("#search").change(function () {

  var username = $(this).val();

  $.ajax({
    url: '/search_username/',
    data: {
      'search': username
    },
    dataType: 'json',
    error: function(){
        alert('failure');
    },
    success: function (data) {
      if (data.is_taken) {
        alert("A user with this username already exists.");
      }
    }
  });

});
第二种方法是可以在views.py中进行更改

username = request.GET.get('username', None)

您正在ajax请求中发送
username
,但在views.py中获得
search

username = request.GET.get('username', None)
您可以更新ajax代码:

$("#search").change(function () {

  var username = $(this).val();

  $.ajax({
    url: '/search_username/',
    data: {
      'search': username
    },
    dataType: 'json',
    error: function(){
        alert('failure');
    },
    success: function (data) {
      if (data.is_taken) {
        alert("A user with this username already exists.");
      }
    }
  });

});
第二种方法是可以在views.py中进行更改

username = request.GET.get('username', None)

先生,你是个美人。我是ajax和js的新手。谢谢暂时解决了我的问题。先生,你是个美人。我是ajax和js的新手。谢谢暂时修复了我的问题。完全不相关,但是您的表单应该使用GET方法-POST是您想要更改服务器状态的时候,而这里不是这样。是的,我也更改了它。还做了其他自定义系统。工作正常,但是你的表单应该使用GET方法-POST是当你想更改服务器的状态时,这里不是这样。是的,我也更改了它。还做过其他的定制系统,工作很好