Django:在模板中获取当前页面的URL,包括参数


2 Answers

在上下文处理器中使用Django的构建来获取模板上下文中的请求。 在设置中,将request处理器添加到TEMPLATE_CONTEXT_PROCESSORS

TEMPLATE_CONTEXT_PROCESSORS = (

    # Put your context processors here

    'django.core.context_processors.request',
)

在模板中使用:

{{ request.get_full_path }}

这样您就不需要自己编写任何新代码了。

Question

有没有办法在Django模板中获取当前页面URL及其所有参数?

例如,一个可以打印完整URL的模板标签,例如/foo/bar?param=1&baz=2




Django有很多内置的东西,但如果你不明确你想要使用什么,它将不会被使用。

因此,在MTV模式(模型,模板,视图)中,视图接收请求并使用模板渲染生成响应,向其传递字典或此视图的所有局部变量(使用locals()函数)。 知道这一点,我们可以插入来自响应的当前URL,如下所示:

views.py:

from django.shortcuts import render

def page(request):
    currentUrl = request.get_full_path()
    return render(request, 'app/page.html', locals())

然后,在模板“app / page.html”中,您只需执行以下操作即可显示我们刚创建并通过locals()传递的currentUrl变量:

应用程序/模板/ page.html中:

{{ currentUrl }}



您可以查看您的网址是否与其他网址不同。

{% if 'foo/bar/' in request.get_full_path %}



Related