我使用两个域名(.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的方法或者我可以通过网站定义模板的另一种方式
答案 0 :(得分:2)
这并不是Sites框架的工作原理。要区分使用站点框架的站点,每个站点都必须有自己的设置模块(因为这是您设置SITE_ID
的位置)。
您正在寻找的是从请求中获取当前网站的方法。您可以使用RequestSite
对象:
from django.contrib.sites.models import RequestSite
site_name = RequestSite(request).domain
还有django-dynamicsites与更多的额外内容(重定向,模板/网址分配,......)做同样的事情。