Похоже, что фреймворк sites
используется неправильно
Фреймворк sites
не предназначен для динамического переключения сайтов на основе запроса.Он предназначен для использования в нескольких отдельных развертываниях, запущенных из одной и той же базы данных.
Проблема 1:
Чтобы исправить функцию items()
, необходимо установить SITE_ID
в settings.py
Что позволяет Site.objects.get_current()
работать где угодно, без необходимости request
объекта.
Проблема 2:
Доменные имена должны , а не быть включенным в URL.Карта сайта запрашивается из домена, поэтому известно, что все находится в этом домене.
Это относится ко всем URL-адресам в django.
Чтобы исправить это, убедитесь, что метод get_absolute_url()
включенваша модель возвращает строку, начинающуюся с "/"
.Ничего, связанного с доменным именем.
URL для элемента генерируется с помощью get_absolute_url()
или путем вызова Sitemap.location()
с элементом.Документация для location()
примеров того, в какой форме должен быть URL.
Для получения дополнительной информации ознакомьтесь с этим билетом об ошибке , о той же проблеме.