簡體   English   中英

使用Ajax時Django視圖未呈現模板

[英]Django view is not rendering a template when using ajax

單擊另一個模板中的按鈕時,我試圖在視圖中渲染模板。 我對視圖中的方法進行了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結果,但是模板只是沒有變化。 任何意見將是有益的。

您需要修復ajax調用的js回調。

您正在從Django返回一些html, 但是在您的js回調中,您正在測試響應,因為它是JSON數據。

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

您正在檢查這樣的JSON結構:

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

請適當地修改您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM