Динамически добавлять в TEMPLATE_DIRS во время выполнения с проектом Django - PullRequest
3 голосов
/ 20 ноября 2010

Для проекта Django, над которым я работаю, мне нужно позволить пользователю указать путь, используемый в TEMPLATE_DIRS. Это для реализации выбираемых «тем». Например:

TEMPLATE_DIRS = (
    os.path.join(WEBSITE_ROOT, 'templates', THEME_NAME).replace('\\', '/'),
    os.path.join(WEBSITE_ROOT, 'templates', 'default').replace('\\', '/'),
)

Но переменная THEME_NAME должна поступать из базы данных через администрацию сайта.

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 20 ноября 2010

Напишите загрузчик шаблонов , вместо этого вы можете указать на каталог темы.

1 голос
/ 20 ноября 2010

Я сделал что-то подобное, пожалуйста, посмотрите здесь https://github.com/ASKBOT/askbot-devel/blob/master/askbot/skins/loaders.py

Помимо загрузчика шаблонов, вам могут понадобиться средства для разрешения медиа, характерного для вашей темы. Это может быть, например, тег шаблона или фильтр, который берет некоторый базовый URL и добавляет префикс темы или что-то в этом роде, также вы можете сделать так, чтобы он автоматически отслеживал версии мультимедиа. Таким образом, когда вы обновляете .js или другой файл, клиент должен будет загрузить последнюю версию.

0 голосов
/ 23 февраля 2011

не уверен, что это та же проблема, что и мой вопрос переключение тем, шаблон и расположение файла css на сайте django

Подкаталоги шаблонов могут быть установлены как контекстная переменная, которая используется в качестве параметра для расширенного тега шаблона

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...