是否可以从模板访问当前站点?

Naf*_*Kay 13 django django-templates django-views django-sites

我试图简单地Site从模板中获取当前解析的电流:

<h3>{{ site.name }}</h3>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这并没有带来任何好处.

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

bra*_*ers 26

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

您可以编写上下文处理器来执行此操作:

from django.contrib.sites.models import Site

def site_processor(request):
    return { 'site': Site.objects.get_current() }
Run Code Online (Sandbox Code Playgroud)

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

<h3>{{ site.name }}</h3>
Run Code Online (Sandbox Code Playgroud)