在django中获取多个站点ID的问题

时间:2012-12-07 10:45:21

标签: python django templates mezzanine multiple-sites

我使用两个域名(.com和.mx)作为夹层项目。当我使用 Site.objects.get_current()函数获取当前站点ID时它只返回一个 1 。 我是否在浏览器中使用.com或.mx。

我认为这是因为在我的settings.py中定义了 SITE_ID = 1 ,当我将其编辑为2时, Site.objects.get_current()函数返回2

但我真正想要的是按网站定义模板,即当用户使用.com时,他会看到 a.html ,当他使用.mx时他会看到 b.html 。但是我告诉 Site.objects.get_current()函数只给我一个id,无论我使用的是.com还是.mx,所以我可以不按网站定义模板。

所以请建议我获取动态网站ID的方法或者我可以通过网站定义模板的另一种方式

1 个答案:

答案 0 :(得分:2)

这并不是Sites框架的工作原理。要区分使用站点框架的站点,每个站点都必须有自己的设置模块(因为这是您设置SITE_ID的位置)。

您正在寻找的是从请求中获取当前网站的方法。您可以使用RequestSite对象:

from django.contrib.sites.models import RequestSite    
site_name = RequestSite(request).domain

还有django-dynamicsites与更多的额外内容(重定向,模板/网址分配,......)做同样的事情。