【发布时间】:2021-03-25 16:21:48
【问题描述】:
我在我的 Django 应用程序中使用 GET 参数来传递信息,我希望在以后使用 Django 的 {% url %} 模板标签的链接中保留这些信息。
在我的情况下,这是为了允许在应用程序内进行仅查看访问。
示例网址:
https://my.app/entry/123?key=abcdef
该页面上的示例链接已创建如下:
<a href="{% url 'entry_detail' entry.id %}">View more details</a>
期望的结果:
我希望 Django 的 URL 模板标签在整个应用程序中自动保留任何名为 key 的 GET 参数。在这种情况下,它将生成应用相同参数的新 URL。例如:
https://my.app/entry/123/details?key=abcdef
解决方法
This blog post 和 this gist 通过创建一个新的模板标签并使用它而不是 Django 的 url 模板标签来解决这个问题。
这真的是最好的解决方案吗?我最终不得不用我自己的标签替换整个应用程序中{% url %} 的每个实例。它也不会修复 reverse() 的使用。
【问题讨论】: