2010-11-19 4 views
3

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

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

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

Любые идеи?

ответ

4

Напишите template loader, вы можете указать вместо этого в каталоге тем.

1

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

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

Смежные вопросы