На моем сайте django я хочу предложить несколько тем для наших лучших клиентов и для босса. Поэтому я быстро создал следующее. - Я рад, что мне удалось представить его, но есть несколько грязных хаков, которые я хочу устранить с помощью хороших решений, о которых я вас прошу.
Вот мой хак
base.html говорит (будь осторожен - безобразно!)
{% ifequal theme "0" %}
{% include "base_d0.html" %}
{% endifequal %}
{% ifequal theme "1" %}
{% include "base_d1.html" %}
{% endifequal %}
{% ifequal theme "2" %}
{% include "base_d2.html" %}
{% endifequal %}
Затем я сохранил в папке MEDIA подкаталоги для всех распространенных css и js
и созданные подкаталоги
static/
d0/ ( all theme 0 stuff )
css/
js/
d1/ ( all theme 1 stuff )
css/
js/
...
css/
(all common css)
js/
(all common js)
В моем контроллере есть метод переключения дизайна, текущий хранится в файле cookie. Он проверяется при каждом запросе и в шаблоне контекстной переменной PREFIX_STATIC
в соответствии с /mypathto/static/d0 resp. +d1 +d2
и, конечно, мне пришлось изобрести COMMON_STATIC
var. И тема var установлена для переключателя base.html.
Конечно, я гуглил еще до начала, но мне было трудно найти хорошие поисковые термины (как я ожидаю, есть много хороших ресурсов)