2

我在一个夹层项目中使用了两个域名(.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的方法,或者还有另一种方法可以按站点定义模板

4

1 回答 1

2

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

您正在寻找的是一种从请求中获取当前站点的方法。您可以为此使用该RequestSite对象:

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

还有django-dynamicsites做同样的事情还有一些额外的(重定向,模板/url分配,......)

于 2012-12-07T13:53:06.433 回答