W1nston_He
2020-06-16 09:25
采纳率: 100%
浏览 312

如何在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}}')

是否有更优雅的方式?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2020-06-16 11:00
    已采纳

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

    打赏 评论
  • cwkisasb 2020-06-16 11:40
    $.ajax({
            url: '/something/' + pk + '/foo/',
            type: 'get',
            success: function (res) {
                if(res.code === 0 && res.data) {
                    ...
                }
            }
        })
    

    直接这样写不行吗

    打赏 评论
  • arnold66 2020-06-16 11:57

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

    打赏 评论

相关推荐 更多相似问题