Проблемы с получением нескольких идентификаторов сайта в 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-адреса,...)

Другие вопросы по тегам