如何解决姜戈 |动态 URL 中的 JS 变量
我正在尝试使用 Django 在动态 url 中传递一个 javascript 变量。我有以下路径
> filter(vixData,HourMinStamp == 0)
# A tibble: 577 x 9
ContractName TradeDate HourMinStamp Open High Low Last NumPriceChanges Volume
<chr> <date> <time> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 F.US.VX 2016-03-01 00'00" 2195 2195 2190 2190 1 5
2 F.US.VX 2016-03-02 00'00" 1950 1950 1947 1947 1 2
3 F.US.VX 2016-03-07 00'00" 1905 1905 1905 1905 0 14
4 F.US.VX 2016-03-08 00'00" 1900 1900 1900 1900 1 2
5 F.US.VX 2016-03-10 00'00" 1910 1910 1910 1910 0 1
6 F.US.VX 2016-03-14 00'00" 1910 1910 1910 1910 1 1
7 F.US.VX 2016-03-16 00'00" 1905 1905 1905 1905 1 2
8 F.US.VX 2016-03-17 00'00" 1825 1825 1825 1825 0 1
9 F.US.VX 2016-03-22 00'00" 1710 1710 1710 1710 0 9
10 F.US.VX 2016-03-23 00'00" 1700 1700 1700 1700 0 2
# ... with 567 more rows
根据我在 HTML 中选择的任务(这是使用 AJAX 和 Django-REST 框架完成的),我能够检索我创建的“任务”字段(id、标题、描述等)。但是,我在动态 url 中呈现 javascript 值时遇到了一些麻烦
path('task-update/<str:pk>/',updateTask,name='task-update'),
${activeItem.id} 是我遇到一些麻烦的地方,我尝试将其分配给一个变量并将其传递到 URL 中,但它不起作用。
我一直在使用的解决方法是
var url = `{% url 'task-update' pk=${activeItem.id} %}`
但是我想使用 django 的模板标签
解决方法
我发现了一个在大多数情况下可能有效的技巧:
var url = "{% url 'task-update' pk=12345 %}".replace(/12345/,${activeItem.id});
它很干净,而且不违反 DRY 原则。
,在搜索了很多之后,这是我找到的最好的整洁的解决方案(也是唯一的一个):django-js-urls。
只需 pip install django-js-urls 并将 'js_urls' 添加到您的已安装的应用程序。
之后,只需将 JS_URLS 添加到您的 settings.py 文件中,然后输入您想要使用的路径的名称。就我而言,我只添加了task-update,它看起来像这样
JS_URLS = (
'task-update',)
然后,您需要做的就是在 URLs 根模块中添加以下内容
from js_urls.views import JsUrlsView
urlpatterns = [
# other urls
url(r'^js-urls/$',JsUrlsView.as_view(),name='js_urls'),]
并在模板中包含以下js
<script src="{% url 'js_urls' %}" type="text/javascript"></script>
可以使用 window.reverse 函数使用网址
var url = window.reverse('task-update',{ pk: activeItem.id });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。