個人的なメモ。
以下のコードのように関数の引数をurlタグに埋め込みたい。
ちなみにmyapp:myviewは数字を受け取る。
function somefunc(num){
window.location.href = "{% url 'myapp:myview' num %}";
}
当然このままではページを開いたときにエラーになる(ページを開いた時点ではnumは不明だからね)。
では文字列の生成をJavascriptにやらせれば良いのか。
function somefunc(num){
window.location.href = "{% url 'myapp:myview' %}" + num;
}
しかし上記のコードはテンプレートを展開するときにurlタグに引数がないのでエラーになる。
ではどうするか。ここに解決方法があった。
Get javascript variable's value in Django url template tag - Stack Overflow
function somefunc(num){
window.location.href = "{% url 'myapp:myview' 123456 %}".replace(/123456/,num);
}
要は、urlタグに仮引数を与えておいて、あとでそれを実物に置き換えてしまえばよい。
なるほど。