如何在Javascript中使用带参数的Django url?

在Django中定义了这样的url:

urlpatterns = [
    ...,
    url(r'^something/(?P<pk>\d+)/foo/$', views.foo, 'test'),
    ...
]

如果要在js中发送ajax请求,可以这样写url, 先写一个占位符,再用真实的变量替换:
“{%url 'test' pk=12345%}”.replace('12345', '{{real_pk}}')

是否有更优雅的方式?

可以考虑不要把地址写死在html里,用html5的data-xxx属性。js读取后构造地址,也可以放在服务器端路由转发。

$.ajax({
        url: '/something/' + pk + '/foo/',
        type: 'get',
        success: function (res) {
            if(res.code === 0 && res.data) {
                ...
            }
        }
    })

直接这样写不行吗

var url = "{% url 'something/'%}" + real_pk + "/foo";