假设我的一个 urlpatterns 看起来像这样。
url('^objects/update/(?P<pk>\d+)$', views.UpdateView.as_view(), name = 'update-object'),
我需要根据所选对象将用户重定向到更新页面(对象列表是使用 Ajax 填充的)。所以我想将命名的 url模式传递给 JavaScript,以便在客户端构建实际的 url。
我想要实现的目标的示例:
'update-objects'给函数(?P<pk>..)为{pk}objects/update/{pk}有小费吗?谢谢
更清楚地说:在渲染时,我无法进行 url 反转,因为 PK 还不知道。我需要制作一种 javascript-urlpattern ,稍后将其转换为真实的 url (即我的 JS 代码将用实际的 pk 值替换 {pk} 部分)
实际的 URL 反转必须发生在服务器端。有多种方法可以做到这一点,其中最优雅的方法可能取决于为此设置的脚本和标记的准确程度。我最近做的一件事是使用 HTML5 数据属性将 URL 附加到逻辑元素,这些属性可以使用 jQuery 轻松检索。如果您不使用 jQuery,我将让您自行翻译为纯 JS。您还没有为您的客户端提供任何代码或细节,所以我有点在黑暗中拍摄,但这也许会给您带来想法:
Django HTML 模板:
<ul class="object-list">
{% for object in objectList %}
<li data-update-url="{% url update-objects object.pk %}">object.name</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
JS:
$('.object-list').on('click', 'li' function () {
var updateUrl = $(this).data('update-url')
...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2321 次 |
| 最近记录: |