使用ajax时,Django视图不呈现模板

时间:2017-10-25 12:03:59

标签: javascript jquery ajax django django-views

当我点击另一个模板中的按钮时,我正在尝试在视图中渲染模板。我在视图中对方法进行了ajax调用,但我不确定它有什么问题。我无法渲染另一个模板,我做错了什么?

my view.py

@csrf_exempt
def checkLogin (request):
    if request.is_ajax():
        param = request.POST.get('param', None)
        param1 = request.POST.get('param1', None)
        if (param=="admin" and param1=="admin"):
            Datenow = datetime.datetime.now().strftime('%H:%M:%S')
            return render(request,'sample/test.html',{'Datenow': Datenow})
        else:
            Datenow = datetime.datetime.now().strftime('%H:%M:%S')
            return render(request,'sample/login.html',{'Datenow': Datenow})
    return HttpResponseBadRequest()

这是我模板中的ajax调用:

    loginbt.onclick = function() { 
            var uName = $('#username').val();
            var pWord = $('#password').val();
            $.ajax({type: 'POST',
            url: '/sample/checkLogin/',                            // some data url
            data: {param: uName, param1: pWord},       // some params  
            success: function (response) {                  // callback
                if (response.result === 'OK') {
                    if (response.data && typeof(response.data) === 'object') {
                       window.alert("its working");
                    }
                } else {
                    // handle an unsuccessful response
                }
            }
           });

}

当我单击模板中的按钮时,我得到200 OK结果,但模板不会改变。任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您需要修复ajax调用的js回调。

你正在jj回调中从django 返回一些html但是你正在测试响应,因为它是JSON数据。

if (response.result === 'OK') {
   if (response.data && typeof(response.data) === 'object')

您正在检查这样的JSON结构:

{
   result: "OK",
   data: {
   }
}

请妥善修改您的代码。