【问题标题】:Generating a url with the same GET parameters as the current page in a Django template在 Django 模板中生成与当前页面具有相同 GET 参数的 url
【发布时间】:2012-10-03 14:19:09
【问题描述】:

我有一个指向 Django 模板中 url 的链接。我想获取当前页面 url 的所有 GET 参数并将它们添加到模板链接的 url 中。当前页面可能有零个 GET 参数。

【问题讨论】:

    标签: python django


    【解决方案1】:

    在您的settings.py 中包含django.core.context_processors.request 上下文处理器,然后在您的模板链接中使用request 对象:

    <a href="{% url 'my_url' %}?{{ request.META.QUERY_STRING }}">
    

    这将导致来自没有任何 GET 变量的页面的链接有一个尾随 ?,但这是无害的。如果这不可接受,您可以先对其进行测试:

    <a href="{% url 'my_url' %}{% if request.META.QUERY_STRING %}?{{ request.META.QUERY_STRING }}{% endif %}">
    

    【讨论】:

      【解决方案2】:

      您可以将request.META['QUERY_STRING'] 传递给模板。

      您可以在渲染模板之前获取 get 参数并将它们传递给模板并在正确的链接上渲染它们。

      您还可以从 request.GET 构建查询字符串

      【讨论】:

        【解决方案3】:

        当前请求的GET参数保存在HTTPRequest.Get中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-22
          • 2021-05-07
          • 2014-06-21
          • 2011-03-15
          • 2013-08-02
          • 1970-01-01
          • 2021-01-29
          相关资源
          最近更新 更多