Javascript 动态URL中的Django | JS变量

Javascript 动态URL中的Django | JS变量,javascript,django,django-rest-framework,django-urls,Javascript,Django,Django Rest Framework,Django Urls,我试图使用Django在动态url中传递javascript变量。我有以下路径 path('task-update/<str:pk>/', updateTask, name='task-update'), ${activeItem.id}是我遇到一些问题的地方,我尝试将其分配给一个变量并将其传递到URL,但它不起作用 我一直在使用的一个解决方法是 var url = `http://127.0.0.1:8000/task-update/${activeItem.id}/` 然而,

我试图使用Django在动态url中传递javascript变量。我有以下路径

path('task-update/<str:pk>/', updateTask, name='task-update'),
${activeItem.id}是我遇到一些问题的地方,我尝试将其分配给一个变量并将其传递到URL,但它不起作用

我一直在使用的一个解决方法是

var url = `http://127.0.0.1:8000/task-update/${activeItem.id}/`

然而,我想使用django的模板标签

我发现了一个在大多数情况下都可以使用的技巧:

var url = "{% url 'task-update' pk=12345 %}".replace(/12345/, ${activeItem.id});

它很干净,而且不会破坏干燥原理。

在搜索了相当多的时间后,这是我找到的最整洁的解决方案(也是唯一的一个):

只需安装django js URL并将'js_URL'添加到您的已安装应用程序中即可

之后,只需将JS_url添加到settings.py文件中,并输入您想要使用的路径名。在我的例子中,我只添加了任务更新,它看起来像这样

JS_URLS = (
    'task-update',
)
然后,您只需在URL根模块中添加以下内容

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>

谢谢,宾比。这个解决方案似乎不起作用,它似乎干扰了我的javascript。我正在使用Django REST框架更新一些值,但似乎不起作用。我发现了一个使用django js URL的解决方案(发布在下面)
<script src="{% url 'js_urls' %}" type="text/javascript"></script>
var url = window.reverse('task-update', { pk: activeItem.id });