validate_email对ajax请求给出属性错误

时间:2019-06-12 08:04:51

标签: django ajax django-validation

我正在一个项目中,我正在使用该输入字段上的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,则检查电子邮件是否存在的功能也会出现“属性错误”。否则,它将绝对正常。

0 个答案:

没有答案