鉴于一个网站,您如何在django模板中获取该主机,而不从视图中传递该变量?
http://google.com/hello --> {{ BASE_URL }} ==> 'http://google.com'
答案 0 :(得分:16)
以下post
对此进行了广泛的回答有几种方法可以做到:
**请注意这些可能是欺骗性的
答案 1 :(得分:8)
这些其他答案均未考虑方案。这对我有用:
{{ request.scheme }}://{{ request.get_host }}
答案 2 :(得分:1)
您可以通过在设置中添加以下request
中间件来获取模板中的TEMPLECT_CONTEXT_PROCESSOR
对象:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)
这里有一些documentation。然后你可以调用你的模板:
{{ request.META.HTTP_NAME }}
这将为您提供基本网址。
答案 3 :(得分:1)
在模板中获取基本网址
{{ request.get_host }}
答案 4 :(得分:1)
URL:google.com/hello
在模板中:
{{ request.get_full_path }}
return /hello
OR
{{ request.get_host }}
return google.com
视图中
:from django.contrib.sites.shortcuts import get_current_site
def home(request):
get_current_site(request)
# google.com
# OR
request.get_host()
# google.com
# OR
request.get_full_path()
# /hello