在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";