44

django テンプレートタグ「url」を使用して URL に誘導する DRY 方法があることが知られています。

{% url "someview" arg1=X %}

ここで、「X」をJavaScript変数の値、たとえばtmp. しかし、以下は機能しません

<script>
    ...{% url "someview" arg1=tmp %}...
</script>

テンプレートタグ内の値を取得するにはどうすればよいですか?

4

6 に答える 6

88

ほとんどの状況で機能する可能性のあるトリックを見つけました。

var url_mask = "{% url 'someview' arg1=12345 %}".replace(/12345/, tmp.toString());

クリーンで、DRY の原則を破りません。

于 2013-07-24T11:27:38.723 に答える
2
var name = "{% url 'your_view_name' pk=0 %}".replace('0', name_variable);
于 2019-08-31T15:53:43.533 に答える
0

JavaScript から名前付き引数を使用できるとは思いません{% url %}が、位置引数またはクエリ文字列パラメーターを使用できます。

<script type="text/javascript">
    var tmp = window.location.hash, //for example
        url = {% url '[url_name]' %} + tmp + '/';
</script>

ただし、これは、テンプレートが最初にレンダリングされるときに 1 回しか実行できません。

于 2013-07-24T11:12:12.283 に答える