Джанго: Администратор с несколькими сайтами и языками
-
02-10-2019 - |
Вопрос
Я должен построить несколько приложений Django, которые позволяют вам управлять несколькими сайтами через один бэкэнд. А contrib.sites
Структура идеально подходит для моих целей. Я могу запустить несколько экземпляров manage.py
с разными настройками для каждого сайта; Но как администратор Джанго должен иметь дело с различными настройками для разных сайтов, например. Если у них разные наборы языков, другой (по умолчанию) язык? Таким образом, есть некоторые проблемы, с которыми нужно столкнуться, если вам придется работать над объектами, поступающими с разных сайтов в одном администраторе ...
Я думаю settings.ADMIN_FOR
Предполагается, что для таких случаев будет довольно полезен, но вряд ли есть документация, и я думаю, что это на самом деле не используется в реальной версии Django (?).
Таким образом, любые идеи/решения приветствуются и очень ценятся! Большое спасибо...
Решение
Есть старый Пост в блоге Джеймса Беннет что может быть полезно:
- Создайте новый объект сайта в вашем администраторе для каждого домена и поместите идентификатор этого сайта в файл настроек как site_id, чтобы Django знал, какой сайт в базе данных соответствует этому файлу настроек.
- В файле «Настройки» для вашего исходного сайта (который с идентификатором 1) добавьте файлы настройки других сайтов в настройку admin_for, чтобы Джанго знал, что этот один экземпляр приложения администратора будет обрабатывать все сайты.
Как документированный admin_for (для которого я не могу публиковать ссылку) должен быть кортежом модулей настроек, очень похожих на instaled_apps, является кортежей модулей приложений Django.
Обратите внимание, что пост в блоге от 2006 года, поэтому он использует немного устаревшего API.