Javascript Django:密码检查在视图中返回false,而它应该返回true

Javascript Django:密码检查在视图中返回false,而它应该返回true,javascript,python,django,django-views,Javascript,Python,Django,Django Views,作为表单验证的一部分,将比较密码和password2。这是一个简化的ajax请求系统的一部分,用于返回少量数据的非常小的站点(因此我不使用JSON)。该程序的想法/目标/总结是它尝试登录用户。如果用户不存在,它会要求客户端为新用户加载/显示表单(只需添加password2字段并要求输入笔名)。这是文件,我用.********* Forms.py(此处不存在错误): Views.py,其中错误为: def user_log_in(request): #add stuff for ajax

作为表单验证的一部分,将比较密码和password2。这是一个简化的ajax请求系统的一部分,用于返回少量数据的非常小的站点(因此我不使用JSON)。该程序的想法/目标/总结是它尝试登录用户。如果用户不存在,它会要求客户端为新用户加载/显示表单(只需添加password2字段并要求输入笔名)。这是文件,我用
.*********

Forms.py(此处不存在错误):

Views.py,其中错误为:

def user_log_in(request):
    #add stuff for ajax request
    user_pass = log_in(request.POST)
    er = []
    if user_pass.is_valid():
        print "valid"
        cleaned_info = user_pass.cleaned_data
        user_object = User.objects.filter(email = cleaned_info['username'])
        if user_object.exists():
            logged_in_user = auth.authenticate(username=cleaned_info['username'], auth_password=cleaned_info['password'])
            #add in is_active
            if logged_in_user is not None:
                auth.login(request, logged_in_user)
                return HttpResponseRedirect('/home')
            else:
                er.append("Incorrect Password")
        else:
            new_user_pass = new_user(request.POST)
            if new_user_pass.is_valid():
                cleaned_info_new = new_user_pass.cleaned_data
                print "check points"
                if cleaned_info_new['password'] == cleaned_info_new['password2']: #********
                    print "clean"
                    new_user_query = creat_user(
                        username=cleaned_info_new['username'],
                        password=cleaned_info_new['password'],
                        email=cleaned_info_new['username']
                    )
                    new_user_query.save()
                    msg = ""
                    try:
                        send_mail("Activate", msg,  'mrgnippy@gmail.com',
                            [cleaned_info['username']], fail_silently=False)
                    except:
                        er.append("Error Sending Email")
                else:
                    er.append('Passwords are not the same')
            elif "TN" in request.POST:
                print "TN"
                for e in new_user_pass.errors:
                    er.append(e)
            #elif to check for is_active
            else:
                print "n_usr"
                return HttpResponse('n_usr')
    else:
        for e in user_pass.errors:
            er.append(e)
        for e in er:
            print"-"
            print e
            print"-"
    return HttpResponse('SOS')
django调试页面显示以下内容:

KeyError at /ajax/login 'password' Request Method: POST Request URL: http://127.0.0.1:8000/ajax/login Django Version: 1.4 Python Executable: 
错误中的post变量是这样的(我把我的电子邮件删掉了,然后):

为了防止出现问题,我已经包含了javascript文件

n_usr = false;
function log_in () {
    if(!$('#pass_enter').hasClass('#usr_enter')){
        password = $('#pass_enter').val();
    }else{
        password = '';
    }
    if(!$('#usr_enter').hasClass('blur_field')){
        username = $('#usr_enter').val();
    }else{
        username = '';
    }
    alert(username);

    if(!n_usr){
        $.post('/ajax/login',{password: password, username: username}, function(data) {
            if(data == "n_usr"){
                $('#new_user_entry').show('slow');
                n_usr = true;
            }
            else {

            }

        })
    }else {
        if (!$('#pass_re_enter').hasClass('blur_field')){
                password2 = $('#pass_re_enter').val();
        }else {
                password2 = '';
        }
        if (!$('#pass_re_enter').hasClass('blur_field')){
            penname = $('#pen_enter').val();
        }else {
            penname = '';
        }
            $.post('/ajax/login', {password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}, function(data) {
                if(data == "e_act"){

                } else {

                }
            });
        }
    }

我只是注意到我在forms.py文件中使用了错误的字段。问题已解决。

如何声明
新用户
表单?为什么不使用django的默认身份验证?@Justanotherdunce我这样做,只是该表单不仅登录用户,而且如果用户未注册,它会在用户端请求其他信息(如果django返回n\u usr,JQuery会显示表单的其余部分)。
GET: No GET data POST: username = u'********@aol.com' TN = u'TN' password2 = u'test' password = u'test' pen_name = u'testing123' FILES: No FILES data
n_usr = false;
function log_in () {
    if(!$('#pass_enter').hasClass('#usr_enter')){
        password = $('#pass_enter').val();
    }else{
        password = '';
    }
    if(!$('#usr_enter').hasClass('blur_field')){
        username = $('#usr_enter').val();
    }else{
        username = '';
    }
    alert(username);

    if(!n_usr){
        $.post('/ajax/login',{password: password, username: username}, function(data) {
            if(data == "n_usr"){
                $('#new_user_entry').show('slow');
                n_usr = true;
            }
            else {

            }

        })
    }else {
        if (!$('#pass_re_enter').hasClass('blur_field')){
                password2 = $('#pass_re_enter').val();
        }else {
                password2 = '';
        }
        if (!$('#pass_re_enter').hasClass('blur_field')){
            penname = $('#pen_enter').val();
        }else {
            penname = '';
        }
            $.post('/ajax/login', {password: password, password2: password2, username: username, pen_name: penname, TN: "TN"}, function(data) {
                if(data == "e_act"){

                } else {

                }
            });
        }
    }