Реализация динамической CSS в Django

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

  • Редактировать файл CSS через Python файл ввода / вывода
  • Создать файл CSS из базы данных
  • Хотя обе реализации имеют серьезные недостатки. Заранее спасибо за ваши решения.

    Изменить: я бы предпочел идеи, а не приложения Django:)

    1 ответ

    Решение

    "Правильный" способ сделать это - определить отдельный класс в 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>
    

    и т.п.

    Другие вопросы по тегам