[英]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.