url django模板的动态参数

Posted

技术标签:

【中文标题】url django模板的动态参数【英文标题】:Dynamic parameter of url django template 【发布时间】:2020-01-02 03:03:19 【问题描述】:

在一个 html 页面中,我有两个单选按钮,其值为 A 和 B。 我还有一个需要两个参数的视图的 url,一个是我可以通过 django 上下文变量轻松访问的参数,但第二个参数应该具有值 A 或 B,具体取决于选中的单选按钮。 我不知道如何完成这项工作。

我把这个帖子加红了:Get javascript variable's value in Django url template tag 这有点像我正在寻找的东西,但我不明白如何在我的情况下实现它。

还查看了这篇文章:https://www.reddit.com/r/django/comments/39q9lm/url_tag_in_template_with_a_dynamic_parameter/ 这几乎是相同的概念。

我在模板中尝试做的是:

<option value="% url 'view' tmp i %".replace(/tmp/, 'A');> </option>

这不是我的目标,但它只是为了检查这是否有效。但这对我不起作用。当然,我的目标不是将 tmp 替换为“A”,而是根据用户在我的 html 页面中选中的单选按钮替换为“A”或“B”。 单选按钮的 ID 为 radio1、radio2。

我当然可以使用 javascript,但我想远离 JQuery 或 Ajax 或其他一般的东西..

任何帮助表示赞赏 谢谢

【问题讨论】:

【参考方案1】:
  `
<option id="mylink" value="% url 'view' A i %"> </option>

<id='radio1' onmousedown="document.getElementById('mylink').value = '% url 'view' tmp i %'.replace('tmp', 'A')">
<id='radio2' onmousedown="document.getElementById('mylink').value = '% url 'view' tmp i %'.replace('tmp', 'B')">

然后当您选择单选按钮时,它会将 # 更改为正确的链接

【讨论】:

replace('tmp', 'A'); 是我想要的“动态”。我的意思是如果选中radio1,我应该用'A'替换​​,否则我应该用'B'替换。这就是目标,但是对于您提到的命令,无论如何我总是用“A”替换? 发布完整的 html 单选按钮代码。您可以对两个单选按钮执行类似“onmousedown”的操作,当单击单选按钮时,它会将链接更改为选中的那个。 Html 太乱,多页。但是需要的元素是这些:&lt;input id="radio1 type="radio" value="A" name="AB" checked&gt; &lt;input id="radio2 type="radio" value="B" name="AB"&gt;,想法是:如果选中radio1,则将url的参数替换为A,如果选中radio2,则将url的参数替换为B... 嗯,这就是我所能去的,没有看到你点击去“查看”的链接。 (我假设它转到提交按钮/命令上的 url,而不是单选按钮选择上,是吗?如果你想切换?我必须查看提交命令的 html 才能执行更多操作。 好的,我认为这可能有效,我会尽快尝试,如果有效,我会将其标记为已接受,谢谢

以上是关于url django模板的动态参数的主要内容,如果未能解决你的问题,请参考以下文章

带有可变 django 模板的动态 URL

Django:引用模板中的url名称并传递参数

Django:URL模板标签中的模型参数

是否可以将查询参数传递给 Django % url % 模板标签?

在 Django 中,如何使用模板和 DB 对象中使用的动态 URL 实现样板 HTML 变量?

Django:在 URL 模板标签中保留 GET 参数