javascriptでajaxを使用して、htmlページにデータを送受信するデータベース情報を送受信しています。データを受け取ったらdiv要素に追加します。追加するすべてのオブジェクトには削除機能が必要です。 onclick='removeFile("{% url 'delete_file' model['pk'] %}");'
フルラインは次のようになります。だから私は、そのオブジェクトの一意のIDJavaScriptのDjangoメソッドでTemplateSyntaxErrorが発生する
通るのonclick方法は、私の問題は、私は適切にこの呼び出しのための引用符でジャンゴurl
方法をフォーマットするように見えることができないということです作成します:
$('#gallery tbody').append("<tr><td><a href='" + object['url'] + "'>" + object['file'] + "</a><span style='float:right'><button type='button' id='delete_button' class='btn btn-lg btn-danger' onclick='removeFile("{% url 'delete_file' model['pk'] %}");'></button></div></td></tr>")
私が手にエラーがTemplateSyntaxエラーです
余り解析できませんでした。 'モデル[' PK ']'
から '[' PKを ']'コンソールに'model['pk']'
の値を記録すると、正しいIDが取得され、onclickメソッド(削除機能はありません)を削除すると正しくロードされます。私はこの
<button type="button" class="glyphicon glyphicon-remove-sign" onclick='removeFile("{% url 'delete_file' a.pk %}"); return false'> </button>
どこa
ようhtml
に直接それを入れて試してみました
はジャンゴからのモデルオブジェクトであり、それが正常に動作します。
どうすればjavascriptの追加メソッドにonclickメソッドを正しく追加できますか?
フルjavascript関数はここにある:ダニエルは指摘したようにJavaScriptはクライアント側を実行しながら
function GetObjects(){
//Retrieves an updated list of objects and displays them on the page
$.post("{% url 'getobjects' %}",getCallback).fail(failCallback);
}
function getCallback(data){
$('#gallery tbody').empty()//Empty the list
//Populate it
for(var i=0;i<data.length;i++){
var model = data[i]
var object= model['fields']
///////////////ERROR LINE:
$('#gallery tbody').append("<tr><td><a href='" + object['url'] + "'>" + object['file'] + "</a><span style='float:right'><button type='button' id='delete_button' class='btn btn-lg btn-danger' onclick='removeFile("{% url 'delete_file' model['pk'] %}");'></button></div></td></tr>")
}
}
function failCallback(failMessage){
console.log(failMessage.responseText)
}
GetObjects()
これはおそらく動作することはできません。 JavaScriptがブラウザに送られる前に、Djangoのテンプレートはクライアント側で完全にレンダリングされます。 –
さて、別のonclickメソッドで回避する必要があると思います – Magnus