Возможно, вас вводит в заблуждение документация. Вы написали:
Я понимаю, что промежуточное ПО устанавливает значение settings.SITE_ID на основе поиска / кэша домена запроса.
Это не тот случай. Это работает с точностью до наоборот. Django использует значение settings.SITE_ID для поиска правильного объекта Site в базе данных. Это возвращает ваш предпочтительный домен и имя сайта.
Приложение sites
было разработано для того, чтобы заполнить (на мой взгляд) редкий случай использования, когда вы хотите иметь несколько сайтов с одной и той же базой данных в фоновом режиме. Это позволяет публиковать одни и те же статьи на разных сайтах, но при этом обладает той гибкостью, что некоторые модели доступны только для одного сайта.
Для разработки нескольких проектов (которые на самом деле не используют каркас сайтов) вам не нужно указывать ничего особенного. Вы можете использовать значение по умолчанию SITE_ID
, установленное на 1
. Для использования представления администратора на веб-сайте ссылок вы можете установить в своей базе данных для разработки домен Site
на localhost:8000
.
Если вы хотите разрабатывать несколько сайтов с использованием одной базы данных (и использовать платформу сайтов), у вас должен быть каждый проект с различными SITE_ID
, но одинаковыми настройками базы данных. Значения SITE_ID
в каждом проекте на вашей машине разработки в большинстве случаев такие же, как для ваших производственных серверов.