Лучший способ развертывания нескольких клиентских веб-сайтов с помощью Wagtail
Я хочу создать веб-сайт wagtail для моих клиентов. Веб-сайты будут идентичны и иметь одинаковые функции, но шаблоны должны быть разными. Каждый раз, когда я обновляю какую-либо функцию до новой версии, все сайты будут получать последнюю версию автоматически. При таком подходе мне не нужно отдельно развертывать новые версии функций (или базовой версии сайта) для своих клиентов. Мне просто нужно развернуть один экземпляр; все клиенты получат последнюю версию сайта. Я буду использовать функцию 'Multi-instance' в Wagtail, которая, похоже, соответствует моим требованиям.
https://docs.wagtail.org/en/stable/advanced_topics/multi_site_multi_instance_multi_tenancy.html
На этой странице упоминается функция "Multi-instance" в Wagtail.
Цитата: "Несколько сайтов используют один и тот же набор файлов проекта . Развертывание обновляет единый набор файлов проекта и перезагружает каждый экземпляр."
https://www.accordbox.com/blog/add-bootstrap-theme-wagtail/
Скажем, я хочу иметь 2 разных шаблона блога (разные темы Bootstrap) в этом учебнике. Файл шаблона блога имеет имя 'post_page.html' и является файлом проекта, поэтому он будет развернут один раз и все сайты получат один и тот же шаблон, в рамках функции 'Multi-instance' в Wagtail.
Итак, мой вопрос таков:
Как я могу развернуть один шаблон блога (post_page.html) на одном сайте клиента, а другой шаблон блога на другом сайте клиента?
Я думаю, что вы захотите включить все варианты шаблонов в свою кодовую базу и затем выбирать, какой из них использовать во время запроса. Чтобы выбрать файл шаблона динамически, вы создаете метод get_template.
Итак, вопрос заключается в том, как настроить, какой сайт использует какой шаблон(ы). Я бы предложил заглянуть в wagtail.contrib.settings, чтобы найти место для сопоставления сайта с его шаблонами. Там, где я работаю, мы поддерживаем 3 варианта - но они идут в комплекте. Вы не можете выбрать шаблон блога из A и смешать его с шаблоном календаря из B. Мы делаем это для собственного спокойствия - особенно потому, что многие из наших блоков поддерживают собственные варианты отображения; например, 3 варианта отображения здесь - это просто стили, которые пользователь может выбрать для одного и того же блока.