如何在Django模板中获取我网站的域名?
我想在Django模板中获取我当前网站的域名,应该怎么做呢?我试过在标签和过滤器里找,但没有找到相关的内容。
19 个回答
133
我发现了一个叫做 {{ request.get_host }}
的方法。
137
如果你想获取实际的 HTTP Host 头信息,可以看看 Daniel Roseman 对 @Phsiao 回答的评论。另一种选择是,如果你在使用 contrib.sites 框架,你可以在数据库中为一个网站设置一个规范的域名(把请求的域名映射到一个设置文件中,使用正确的 SITE_ID 这一点需要你自己通过服务器设置来完成)。在这种情况下,你需要关注的是:
from django.contrib.sites.models import Site
current_site = Site.objects.get_current()
current_site.domain
如果你想使用 current_site 对象,你需要自己把它放到模板上下文中。如果你到处都在用这个对象,可以考虑把它打包成一个模板上下文处理器。
91
我觉得你想要的是能够访问请求的上下文,看看RequestContext。