別のテンプレートでボタンをクリックしたときに、ビューでテンプレートをレンダリングしようとしています。私は視点でメソッドにajax呼び出しを行いますが、何が間違っているのか分かりません。別のテンプレートをレンダリングできません。間違っていますか?Djangoビューでは、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
結果を得るが、テンプレートだけでは変更されません。どんな助言も役に立つでしょう。
'window.alert'イベントは正常に起動しますか? – souldeux
どこにでもテンプレートが表示されるようなコードはありませんか?テンプレートレスポンスでHTMLを更新するには、成功関数でそれを行う必要があります。 – solarissmoke
あなたのページはなぜ変わると思いますか? HTML文書をajax関数に戻していて、その関数はアラートを表示する以外は何もしません。 ajaxでは、djangoビューはJSONドキュメントを返すので、ajax関数はこれを処理し、それに応じてHTML DOMツリーを変更できます。 – dirkgroten