我正在尝试从模板中简单地获取当前Site
以进行解析:
<h3>{{ site.name }}</h3>
不幸的是,这并没有带来什么。
有没有办法从模板访问当前网站?
答案 0 :(得分:25)
你的问题的标题假定“视图”和“模板”是可以互换的 - 它们不是。为了在模板中获取当前站点,需要将其添加到用于呈现模板的上下文中。如果您使用的是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>
答案 1 :(得分:0)
奇怪的是,使用bradleyayers处理器给出了Null结果,所以我没有使用Site框架,而是在请求中使用了参数。
所以处理器看起来像这样:
def host_processor(request):
return { 'host': request.get_host() }
希望有所帮助