В трясогузке логика представления живет на модели страницы.Когда запрос будет сделан, Wagtail url resolver вызовет метод page serve
.Форма кода Wagtail wagtail.core.models.Page выглядит следующим образом:
def get_template(self, request, *args, **kwargs):
if request.is_ajax():
return self.ajax_template or self.template
else:
return self.template
def serve(self, request, *args, **kwargs):
request.is_preview = getattr(request, 'is_preview', False)
return TemplateResponse(
request,
self.get_template(request, *args, **kwargs),
self.get_context(request, *args, **kwargs)
)
Чтобы ответить на ваш вопрос: вам нужно переопределить get_template
и добавить логику, чтобы сделать имя шаблона уникальным для каждого сайта.Это непроверенный код, но вы поняли:
class SomePage(Page):
...
def get_template(self, request, *args, **kwargs):
return request.site + super().get_template(request, *args, **kwargs)
Теперь имя шаблона имеет префикс с сайтом.Так что вам нужно только предоставить шаблоны с правильными именами.