我想知道如何在模板中获得当前URL。
假设我当前的URL是:
.../user/profile/
如何将此返回到模板?
我想知道如何在模板中获得当前URL。
假设我当前的URL是:
.../user/profile/
如何将此返回到模板?
当前回答
要将get参数传递给模板, 你可以通过views.py文件传递它
例子:
return render(request, 'test.html',{'get_parameter_name' : get_parameter_value})
并在模板中使用如下:
{{get_parameter_name}}
其他回答
如果你也在模板中使用js,你可以这样做: 在你的js
document.addEventListener('DOMContentLoaded', function() {
...
getUrl();
}
function getUrl() {
let someDiv = document.querySelector(`#someDiv`);
someDiv.innerHTML = window.location.href;
}
对于你的模板
...
<div id="someDiv"><div>
...
我想发送到模板完整的请求有点多余。我这样做
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 1.9及以上版本:
## template
{{ request.path }} # -without GET parameters
{{ request.get_full_path }} # - with GET parameters
Old:
## settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)
## views.py
from django.template import *
def home(request):
return render_to_response('home.html', {}, context_instance=RequestContext(request))
## template
{{ request.path }}
要将get参数传递给模板, 你可以通过views.py文件传递它
例子:
return render(request, 'test.html',{'get_parameter_name' : get_parameter_value})
并在模板中使用如下:
{{get_parameter_name}}
在Django 3中,你需要使用url template标签:
{% url 'name-of-your-user-profile-url' possible_context_variable_parameter %}
具体示例请参见文档