如何将当前查询字符串添加到 Django 模板中的 URL?

新手上路,请多包涵

当我加载页面时,有一个链接 “sameLink” ,我想将其包含页面的 查询字符串 附加到它。

我有以下网址:

 somedomain/reporting/article-by-month?variable1=2008

我怎样才能做到这一点?

原文由 Viktor Apoyan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 629
2 个回答

要捕获作为请求一部分的 QUERY_PARAMS,您引用包含这些参数的字典 ( request.GET ) 并对它们进行 urlencode,以便它们可以作为 href 的一部分被接受。 request.GET.urlencode 返回一个类似于 ds=&date_published__year=2008 的字符串,您可以将其放入页面上的链接中,如下所示:

 <a href="sameLink/?{{ request.GET.urlencode }}">

原文由 DrTyrsa 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你像下面这样注册一个模板标签:

 @register.simple_tag
def query_transform(request, **kwargs):
    updated = request.GET.copy()
    updated.update(kwargs)
    return updated.urlencode()

您可以修改模板中的查询字符串:

 <a href="{% url 'view_name' %}?{% query_transform request a=5 b=6 %}">

这将保留查询字符串中已有的任何内容,并仅更新您指定的键。

原文由 Michael 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏