私の 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 %}
次に、すべての一般的なcssとjsのサブディレクトリをMEDIAディレクトリに保持しました
そして作成されたサブディレクトリ
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
。また、base.html スイッチにもテーマ変数が設定されています。
もちろん、始める前からグーグルで検索しましたが、良い検索用語を見つけるのが難しいことがわかりました(良いリソースがたくさんあると思います)