Проблемы с получением нескольких идентификаторов сайта в Django
Я использую два доменных имени (.com и.mx) для мезонинного проекта. Когда я использую функцию Site.objects.get_current() для получения текущего идентификатора сайта, возвращается только один 1. использовал ли я.com ИЛИ.mx в своем браузере.
Я думаю, это потому, что в моем файле settings.py SITE_ID = 1 определен, и когда я изменяю его на 2, функция Site.objects.get_current() возвращает 2.
Но на самом деле я хочу определить шаблоны по сайту, то есть, когда пользователь использует.com, он увидит .html, а когда он использует.mx, он увидит b.html. Но, как я сказал Site.objects.get_current() функция дает мне только один идентификатор, независимо от того, использовал ли я.com или.mx, поэтому я не могу определить шаблон по сайту.
Поэтому, пожалуйста, предложите мне какой-нибудь способ получить динамический идентификатор сайта или есть другой способ, которым я могу определить шаблон для сайта
1 ответ
Это не совсем то, как работает платформа Sites. Чтобы различать сайты, использующие структуру сайтов, каждый сайт должен иметь свой собственный модуль настроек (потому что именно там вы устанавливаете SITE_ID
).
То, что вы ищете, это способ получить текущий сайт из запроса. Вы могли бы использовать RequestSite
Объект для этого:
from django.contrib.sites.models import RequestSite
site_name = RequestSite(request).domain
Есть также django-dynamicites, который делает то же самое с несколькими дополнительными функциями (перенаправления, назначение шаблона / URL-адреса,...)