【发布时间】:2013-01-14 10:57:11
【问题描述】:
假设我的一个 urlpatterns 看起来像这样。
url('^objects/update/(?P<pk>\d+)$', views.UpdateView.as_view(), name = 'update-object'),
我需要根据所选对象将用户重定向到更新页面(对象列表是使用 Ajax 填充的)。所以我想将该命名的 url pattern 传递给 JavaScript,以便在客户端构建实际的 url。
我想要实现的示例:
- 将名称
'update-objects'传递给函数 - 获取实际的 url 模式,将
(?P<pk>..)替换为{pk} - 将结果传递给javascript,结果为:
objects/update/{pk}
有什么建议吗? 谢谢
为了更清楚一点:在渲染的那一刻,我不能做 url reverse 因为 PK 还不知道。我需要制作一种 javascript-urlpattern,稍后将其转换为真实的 url(即我的 JS 代码将用实际的 pk 值替换 {pk} 部分)
【问题讨论】:
-
也许我误解了这个问题,但为什么不把 objects/update/(?P
\d 翻译成类似 objects/update/? pk? 并让客户端 js 弄清楚如何替换 ?pk?。在这种情况下,您需要做的只是用一些与正则表达式匹配的虚拟值来愚弄 django 的 url reverse,用 ? pk? (或类似的),然后将 url 模板存储在某个 js 变量中。此评论针对 OP 的目标不如其他答案。实际上,可以使用与 sprintf.js 配合良好的标记来代替 ?pk? .
标签: javascript django