Django выбрать шаблон из панели администратора без перезагрузки сервера - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь создать сайт с несколькими шаблонами для всех страниц.

Я создал папку templates и в ней 3 папки.каждая папка содержит base.html , home.html , и т. д. .

Администратор может выбрать каждый шаблон из панели администратора и, на мой взгляд, загрузитьтакой шаблон.

class HomeView(TemplateView):
    default_template = CustomTemplate.objects.first().name
    template_name = default_template + '/home.html'

Проблема в Я должен перезапустить сервер, чтобы применить изменения администратора .Есть ли способ сделать это без перезагрузки сервера?Я также пытался включить / отключить кэш-загрузчик, но я думаю, что проблема не зависит от системы кеша.

1 Ответ

1 голос
/ 09 июля 2019

Все, что определено непосредственно на уровне класса, будет сохраняться в течение всего процесса.

К счастью, представления на основе классов в Django предоставляют серию хуков, так что вы можете определять вещи для каждого запроса. В этом случае вам нужен метод get_template_names (который возвращает список шаблонов для поиска).

Итак:

class HomeView(TemplateView):
    def get_template_names(self):
        default_template = CustomTemplate.objects.first().name
        return ['{}/home.html'.format(default_template)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...