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')