9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javascript関数の引数をDjangoのurl template tagに埋め込みたい

Last updated at Posted at 2018-06-15

個人的なメモ。

以下のコードのように関数の引数を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タグに仮引数を与えておいて、あとでそれを実物に置き換えてしまえばよい。
なるほど。

9
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?