Реализация динамической CSS в Django - PullRequest
2 голосов
/ 16 мая 2011

У меня есть небольшое приложение для блога, и я хочу иметь возможность изменять стили (не обязательно все) со страницы администратора.Каков был бы «правильный» способ реализовать динамическую загрузку стиля в проекте django?Мои собственные мысли:

Редактирование файла CSS через ввод / вывод файла Python Создание файла CSS из базы данных

Хотя обе реализации имеют серьезные недостатки.Заранее благодарю за ваши решения.

Редактировать: Я бы предпочел идеи, а не django apps:)

1 Ответ

1 голос
/ 16 мая 2011

«Правильный» способ сделать это - определить отдельный класс в div (или даже теле) верхнего уровня, который определяет основной стиль для этой страницы.Все элементы стиля на этой странице наследуют этот стиль посредством магии каскадирования:

.master-default {
    color: black;
}
.master-default .bordered {
    border: green;
}
.master-blue {
    color: blue;
}
.master-blue .bordered
    border: yellow;
}

и так далее.Теперь ваш интерфейс администратора просто позволяет пользователю определить мастер-стиль верхнего уровня, который вы затем используете в своем базовом шаблоне:

<div id="master" class="{{ userprofile.master_style }}">
    <div class="bordered">Border colour will vary according to master style</a>
</div>

и т. Д.

...