Django Ajax ка принять json

Проблема в том что Ajax не принимает данные я не смог решить это

{% load static %}
  <body>
    <div class="container-fluit padding">
      <div class="row alert text-center">
        <div class="col-12">
          <div class="card">
            <h1 class = "display">Sign Up</h1>
          </div>
        </div>
      </div>
    </div>
    <div class="container col-sm-8 col-sm-offset-2 col-lg-6">




        <form method="post" data-validate-username-url="{% url 'registration' %}">
          {% csrf_token %}
          {{ form|crispy }}

          <button type="submit">Sign up</button>
        </form>


      </div>

Я пытаюсь принять данные но у меня все летит error:function().
Элементы data учитывая что его нам json, элементы data в Console показывают undefined
Я это не понял
введите сюда описание изображения


  <script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
  <script>
    $("#id_username").change(function () {
      var form = $(this).closest("form");
      $.ajax({
        url: form.attr("data-validate-username-url"),
        data: form.serialize(),
        dataType: 'json',
        success: function (data) {
          // if (data.is_taken) {
          //   alert(data.error_message);
          // }
          console.log('in success ajax');
          console.log(data['error_message']);
        },
        error:function(data){
          console.log('in error ajax');
          console.log(data.error_message);
          // if (data.is_taken) {
          //   alert(data.success);
          // }
          // if (data.is_taken) {

          //   alert(data.error_message);
          // }
        }
      });

    });
  </script>

Может быть проблема в моей views ке

def registration(request):
    def generate_password():
        alphabet = string.ascii_letters + string.digits
        password = ''.join(secrets.choice(alphabet) for i in range(8))
        return password


'
    def check_to_valid_gmail(request,email):
        data = {'is_taken': User.objects.filter(username__iexact=email).exists()}
        # return HttpResponse(data.is_taken)
        if data['is_taken']:
                # return HttpResponse('adas')
            data['error_message'] = 'A user with this username already exists.'
            return JsonResponse({'foo':'bar'})

'

    try:

        email = request.POST.get("au-username")

        if email != None:

            # return HttpResponse("Sdas")
            client_form         = ClientForm(request.POST or None)

            # save into django auth_user table
            # new_user            = form.save(commit=False)
            # email               = form.cleaned_data['email']

            'check_to_valid_gmail(email)'**текст, выделенный жирным шрифтом**

            new_user.email      = email
            new_user.username   = email
            password = generate_password()**текст, выделенный жирным шрифтом**
            print(password)
            new_user.set_password(password)
            new_user.save()


            send("YOUR PASSWORD", password, email)

                #save into models Client table
            client              = client_form.save(commit=False)
            client.user         = new_user
            client.save()
            data["success"] = 'message send to your email'
            return JsonResponse(data)

        return render(request, 'talpynroot/registration.html')
    except:
        raise Http404('Something maybe you entered the data incorrectly')

Ответы (0 шт):