我想知道如何在模板中获得当前URL。
假设我当前的URL是:
.../user/profile/
如何将此返回到模板?
我想知道如何在模板中获得当前URL。
假设我当前的URL是:
.../user/profile/
如何将此返回到模板?
当前回答
如果你也在模板中使用js,你可以这样做: 在你的js
document.addEventListener('DOMContentLoaded', function() {
...
getUrl();
}
function getUrl() {
let someDiv = document.querySelector(`#someDiv`);
someDiv.innerHTML = window.location.href;
}
对于你的模板
...
<div id="someDiv"><div>
...
其他回答
{{请求。路径}}和{{request。get_full_path}}返回当前URL而不是绝对URL,例如:
your_website.com/wallpapers/new_wallpaper 两者都会返回/new_wallpaper/ (注意前面和后面的斜杠)
所以你得做点什么
{% if request.path == '/new_wallpaper/' %}
<button>show this button only if url is new_wallpaper</button>
{% endif %}
但是,您可以使用以下方法获得绝对URL(感谢上面的答案)
{{ request.build_absolute_uri }}
注意: 你不需要在settings.py中包含请求,它已经在那里了。
下面的代码帮助我:
{{ request.build_absolute_uri }}
其他答案都是错的,至少对我来说是这样。请求。Path不提供完整的url,只提供相对的url,例如/paper/53。我没有找到任何合适的解决方案,所以我最终在视图中硬编码url的常量部分,然后将其与request.path连接。
我想发送到模板完整的请求有点多余。我这样做
from django.shortcuts import render
def home(request):
app_url = request.path
return render(request, 'home.html', {'app_url': app_url})
##template
{{ app_url }}
在django模板中 简单地从{{request.path}}获取当前url 获取参数为{{request.get_full_path}}的完整url
注意: 你必须在django TEMPLATE_CONTEXT_PROCESSORS中添加request