Я работаю над проектом, в котором я проверяю поле электронной почты, используя событие onChange для этого поля ввода. Когда я использую validate_email
в полученном значении электронной почты, отображается следующая ошибка:
AttributeError: 'str' object has no attribute 'GET'
views.py
from django.core.exceptions import ValidationError
from django.core.validators import validate_email
def validate_email(request):
email = request.GET.get('email',None)
data = {
'is_taken' : CustomUser.objects.filter(email__iexact=email).exclude(email__iexact=request.user.email).exists()
}
try:
validate_email(email)
except ValidationError:
data['invalid'] = "Invalid email address."
if data['is_taken']:
data['error_message'] = 'Email already exists.'
return JsonResponse(data)
HTML
$("#email").change(function () {
var form = $(this).closest("form");
$.ajax({
url: form.attr("validate-email"),
data: $("#email").serialize(),
dataType: 'json',
success: function (data) {
if (data.is_taken) {
$("#error_msg").text(data.error_message);
$("#email").val("");}
else if(data.invalid)
{
$("#error_msg").text(data.invalid);
$("#email").val("");
}
else {
$("#error_msg").html("");
}
}
});
});
Также функция проверки наличия электронной почты также получает ошибку атрибута, если я использую validate_email
. В противном случае это работает абсолютно нормально.