私はこれを理解できないようです。{{variable}}を使用して変数をレンダリングするPython/Djangoテンプレートがあり、ユーザーがボタンをクリックしたときにHTMLページでJavascriptを使用して変数を操作しようとしています。
私が見ている問題は、Javascriptが{{を異なる方法で処理しているように見えるため、HTMLとしてレンダリングするときに、変数を変換しないことです(つまり、以下のコードの5ではなく「+id+」と表示されます。
function changeDate()
id = 5;
html = "{{ variable[" + id + "] }}";
document.getElementById('test').innerHTML = html;
私は次のようにそれらをエスケープしようとしました: "{{"そしてそれはうまくいくようです(つまり、'id'を5に変換します)が、Pythonは文字列を変数として解釈せず、ページに文字列を表示するだけですその変数の実際の値ではなく、{{variable[5]}}として。
私の推測では、これは、ページが既にレンダリングされた後にJavascriptがDIVを新しいテキストに変換しているために発生するため、Pythonは最初にページをレンダリングするときに変数を変換する機会がありません。
したがって、2つの可能な解決策があると思います。
- 文字列に{{と}}を残したまま、変数を適切にレンダリングする方法を見つけます
また
- Javascriptで表示される前に、Pythonに文字列バージョンの{{variable[5]}}を解釈させる方法を理解してください。
どんな助けでも大歓迎です!