javascript - 如何在 javascript 中正确配置 django url
问题描述
我已经看到了很多关于这个主题的问题和答案(例如这个),但解决方案似乎回避了我。在我的模板中,我有一系列单选按钮,并希望将所选项目传递回视图
常见/urls.py
path('use-selected/<str:app_base>/<str:board_number>/', views.UseSelectedItem.as_view(), name='use-selected'),
如果我在模板中输入以下代码,它可以正常工作
<a id="use-selected" href="{% url 'use-selected' app_base='solo' board_number='4' %}"><button type="submit">Use selected</button></a>
另一方面,如果我在 javascript 中分配 href
html
<a id="use-selected" href=""><button type="submit">Use selected</button></a>
javascript
$(document).ready(function () {
selectedBoard = document.getElementsByName('selected_board_id');
use_selected_href = document.getElementById('use-selected-href');
selectedBoard.forEach((radioButton) => {
radioButton.addEventListener('click', () => {
processBoardSelection(radioButton.value)
});
})
});
function processBoardSelection(board_number) {
var use_selected_text = "{% url 'use-selected' app_base='app_base_value' board_number='board_number_value' %}"
temp_text = use_selected_text.replace('board_number_value', board_number.toString());
use_selected_href.href = href_text;
// use_selected_href.href="{% url 'use-selected' app_base='solo' board_number='4' %}"
}
链接失败。请求网址是
http://127.0.0.1:8000/common/history/solo/%7B%25%20url%20'use-selected'%20app_base%3D'solo'%20board_number%3D'4'%20%25%7D
我不明白共同/历史/独奏元素出现在哪里。common和solo是我项目中的应用程序;common/history是访问此页面的 url
[EDIT 20210808 08:51 UCT] 我已经基于这个问题构建了一个简单的测试应用程序,它可以正常工作。它使用此处介绍的模板中的 javascript 和a标记(java 脚本位于单独的文件中)。正确解释 url 并将参数传递给视图。
我重复 :
我不明白共同/历史/独奏元素出现在哪里。
在失败的网址中
解决方案
在您的模板中,您可以尝试以下操作:
<input type="hidden" id="use-selected" value="{% url 'use-selected' app_base='solo' board_number='4' %}">
在 js 代码中重构你的函数,如下所示:
$(document).ready(function () {
// ...
selectedBoard.forEach((radioButton) => {
radioButton.addEventListener('click', () => {
href = $("#use-selected").prop("value")
processBoardSelection(radioButton.value, href)
});
})
});
function processBoardSelection(board_number, href) {
// ...
}
获取url的方法有很多。
推荐阅读
- python - 在python中随机连接两个数组直到满足限制长度
- php - php -m 的可靠性如何。我可以用它来检查所有已安装的 php 扩展吗?
- nosql - 使用单表的 NoSQL 数据库设计
- excel - 通过 VBA 自动筛选时如何跳过字段?
- ios - Xcode 构建上传错误:对 TCP 端口 443 的出站访问,无法找到包的 MZContentProviderUpload。(1041)
- node.js - 节点 js 和猫鼬模式 date.now 代码无法正常工作
- mysql - mySQL 5.5 - 在与 UNION 链接的两个表之后将值透视到列
- jenkins - 如何访问 Jenkins ${workspace}/ 中的子目录?
- java - 如何处理响应代码?
- python - Keras:迁移学习——图像缩放显着降低了模型的性能