【发布时间】:2012-12-02 11:47:18
【问题描述】:
在我的 Django URL 中,我有许多以 : 结尾的 URL 模式
(redirect/(?P<redirect_to>\w+))
这意味着这些 URL 可以(或不)以/redirect/TARGET/ 结尾。这些 URL 模式还有其他命名参数(主要是一个:pk)
现在,我希望在这些 URL 模式使用的模板中能够更改当前页面路径,只需添加 redirect_to 参数,并保持其他参数和 URL 反向名称不变。
通过将resolve(path).url_name 添加到当前上下文,然后将其与{% url %} 模板标签一起使用,我能够在模板中获取URL 反向名称。
我想知道是否有任何简单的方法可以将参数(来自resolve(path).kwargs)动态添加到 URL 反向标记?
【问题讨论】:
-
不确定你是否想要这个
{% url url_name my_kwarg1='any_value' my_kwarg2=context_var %}你的问题令人困惑。 -
我不确定我理解你的意思。您是否打算将重定向逻辑添加到实际模板中?
-
我最初的目标是创建三个不同的表单,每个表单在提交表单时重定向到不同的位置。所以我需要有一种方法可以在以/redirect/FOO 结尾的页面中获取更改后的URL。答案中给出的模板标签可以完成这项工作,但是我最终使用提交按钮名称的组合完成了我必须做的事情(提交按钮的名称属性在提交表单时作为空键传递给服务器)并覆盖基本 FormView 中的 get_success_url()。
-
@AamirAdnan 如果我在每次调用时准确地知道 kwargs 列表,这将起作用。
标签: django django-templates django-urls