我想知道如何在模板中获得当前URL。

假设我当前的URL是:

.../user/profile/

如何将此返回到模板?


当前回答

你可以使用{{request.path}}获取不带参数的url。 你可以使用{{request.get_full_path}}来获取带参数的url。

其他回答

如果你也在模板中使用js,你可以这样做: 在你的js

document.addEventListener('DOMContentLoaded', function() {
    ...
    getUrl();
}

function getUrl() {
    let someDiv = document.querySelector(`#someDiv`);
    someDiv.innerHTML = window.location.href;
}

对于你的模板

...
<div id="someDiv"><div>
...

其他答案都是错的,至少对我来说是这样。请求。Path不提供完整的url,只提供相对的url,例如/paper/53。我没有找到任何合适的解决方案,所以我最终在视图中硬编码url的常量部分,然后将其与request.path连接。

下面的代码帮助我:

 {{ request.build_absolute_uri }}

在Django 3中,你需要使用url template标签:

{% url 'name-of-your-user-profile-url' possible_context_variable_parameter %}

具体示例请参见文档

我想发送到模板完整的请求有点多余。我这样做

from django.shortcuts import render

def home(request):
    app_url = request.path
    return render(request, 'home.html', {'app_url': app_url})

##template
{{ app_url }}