在Django url模板标签中获取javascript变量的值

Mik*_*Lee 27 javascript django url

众所周知,有一种通过使用django模板标签"url"指向URL的DRY方式,比如说

{% url "someview" arg1=X %}
Run Code Online (Sandbox Code Playgroud)

在这里,我希望"X"是javascript变量的值tmp.但以下不起作用

<script>
    ...{% url "someview" arg1=tmp %}...
</script>
Run Code Online (Sandbox Code Playgroud)

我应该如何获得模板标签内的值?

Mik*_*Lee 59

我找到了一个在大多数情况下可能有效的技巧:

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

它很干净,并没有打破DRY原则.


Olf*_*os6 5

只是说清楚一点,以便下一个读者可以有一个全面的解决方案。关于问题,这是我如何使用Mike Lee解决方案的示例案例,该案例使用Javascript重定向到新页面,并在名为tmp的变量中带有参数:

window.location = "{% url 'your_view_name' 1234 %}".replace(/1234/, tmp.toString());
Run Code Online (Sandbox Code Playgroud)