【发布时间】:2016-07-22 09:14:47
【问题描述】:
我正在尝试使用 Parsley.js 和 Django 设置前端用户身份验证检查。
这是我的看法
@requires_csrf_token
def password_check(request):
email = request.POST.get('email')
password = request.POST.get('password1')
user = authenticate(email=email, password=password)
if request.is_ajax():
if user.is_active:
res = "These password and e-mail are ok."
ajax_vars_login = {'response': res, 'email': email, 'password': password}
json_data_login = json.dumps(ajax_vars_login)
else:
res = "The e-mail or the password field aren't correct."
ajax_vars_login = {'response': res, 'email': email, 'password': password}
json_data_login = json.dumps(ajax_vars_login)
return HttpResponse(json_data_login, content_type='application/json')
验证器
Parsley.addAsyncValidator(
'emailPwCombination', function (xhr) {
var password = $('#password').parsley();
var email = $('#email').parsley();
var response = xhr.responseText;
var jsonResponse = JSON.parse(response);
var jsonResponseText = jsonResponse["response"];
if(jsonResponseText == 'The password and e-mail are ok.')
return true;
if(jsonResponseText == '404')
return false;
}, '/password_check/'
);
但是当调用“password_check”函数时,我得到这个错误:
AttributeError at /password_check/
“NoneType”对象没有“is_active”属性
我尝试在“request.is_ajax()”之后放置 print 来测试值,它有时会捕获电子邮件,有时会捕获密码,但不会将两者放在一起。
我该如何解决这个问题?
【问题讨论】:
-
它告诉您
authenticate没有返回任何内容,可能是因为电子邮件和密码不匹配。你应该检查一下。
标签: javascript django django-authentication parsley.js nonetype