一尘不染

如何在Django模板中获取网站的域名?

django

如何从Django模板中获取当前站点的域名?我试着寻找标签和过滤器,但那里什么也没有。


阅读 676

收藏
2020-03-26

共2个答案

一尘不染

我认为你要访问的是请求上下文,请参阅RequestContext。

2020-03-26
一尘不染

如果需要实际的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对象,则必须自己将其放在模板上下文中。如果你在各处使用它,则可以将其打包在模板上下文处理器中。

2020-03-26