javascript - 从JavaScript调用Django View

385 阅读1分钟

假设我正在编写一个网络应用程序,在网上商店出售古董硬币,并且我有一个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);
}



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

最佳答案

您可以使用Jinja逻辑使用要渲染的模板中的脚本标签定义要重定向到的URL。然后,在您的JS中,您可以捕获选择框的状态更改,获取其值并将其存储在名为params的变量中,并附加适当的?以表示url parameter,然后重定向到该页面。我希望你明白我的意思。

file.html

<select id="category">
    <option value="gold">Gold</option>
    <option value="silver">Silver</option>
</select>
<script>
    var PAGE_URL = "{% url 'appname:urlname' %}"
</script>
<script src="file.js" type="text/js"></script>

file.js

$("#category").on('change', function(){
    params = "?search="+this.val;
    window.locaiton.replace(PAGE_URL+params);
});

关于javascript - 从JavaScript调用Django View ,我们在Stack Overflow上找到一个类似的问题: stackoverflow.com/questions/5…