13

我试图简单地Site从模板中获取当前的解析,如下所示:

<h3>{{ site.name }}</h3>

不幸的是,这并没有带来什么。

有没有办法从模板访问当前站点?

4

2 回答 2

27

您的问题的标题假定“视图”和“模板”是可以互换的——它们不是。为了在模板中获取当前站点,需要将其添加到用于呈现模板的上下文中。如果您使用的是RequestContext,您可以编写一个上下文处理器来自动执行此操作。

您可以编写一个上下文处理器来执行此操作,如下所示:

from django.contrib.sites.models import Site

def site_processor(request):
    return { 'site': Site.objects.get_current() }

然后,将其添加到您的TEMPLATE_CONTEXT_PROCESSORS中,并像这样使用它:

<h3>{{ site.name }}</h3>
于 2011-09-19T05:13:45.087 回答
0

奇怪的是,使用 bradleyayers 处理器给出了 Null 结果,因此我没有使用 Site 框架,而是使用了请求中的参数。

所以处理器看起来像这样:

def host_processor(request):
    return { 'host': request.get_host() }

希望它有所帮助

于 2015-03-21T22:41:10.283 回答