首页 > 解决方案 > 从 JavaScript 调用 Django 视图

问题描述

假设我正在编写一个网络应用程序,网上商店出售古董硬币,并且我有一个 HTML 组合框 ( <select>),并且在选择时(例如,我选择“黄金”以仅列出金币)我想重定向到特定的 Django 视图, 我怎样才能做到这一点?我的猜测是 JavaScript,但我不确定如何正确构建所需 Django 视图的 URL。

目前我正在这样做:

var combobox = document.getElementById('category-combobox');
combobox.addEventListener('change', spam);
​
function spam() {
    window.location.replace("/shop/search/?q=" + combobox.value);
}

我只是想知道是否有比手动编码 URL 更好的方法

标签: javascripthtmldjango

解决方案


解决方案是使用django-js-reverse

第1步:安装它pip

pip install django-js-reverse

第2步:添加'django_js_reverse'INSTALLED_APPSsettings.py

INSTALLED_APPS = [
    'django_js_reverse',
]

第 3 步:urls.py

from django_js_reverse.views import urls_js

urlpatterns = [
    path('jsreverse/', urls_js, name='js_reverse'),
]

第 4 步:包含js_reverse在您的模板中

<script src="{% url 'js_reverse' %}" type="text/javascript"></script>

第 5 步:使用 JavaScript 中的视图

Urls['products:products-list']

推荐阅读