実験的なレイアウトを公開テストするために、Django サイトに「dev」サブドメインを追加したいと考えています。これらの実験はすべて、私のbase.html
テンプレートで動作します。(たとえば、新しい CSS ファイルをいくつかのより流動的なコンテナーと組み合わせて試すことができます。) 現時点では、この代替テンプレートはbase_alt.html
ファイル内にあります。
request
オブジェクトが正しいsubdomain
プロパティを持つようにミドルウェアをセットアップし、django.core.context_processors.request
コンテキスト プロセッサを使用してこのプロパティをテンプレート自体に渡します。しかし、ベース ファイルをスワップ アウトするロジックを配置する正しい場所を決めることができません。ここに私の考えがあります:
を継承する各テンプレートのロジックbase.html
:
{% ifequal request.subdomain "dev" %}
{% extends "base_alt.html" %}
{% else %}
{% extends "base.html" %}
{% endifequal %}
一つには、これはうまくいきません。私は愚かな間違ったことをしていると思います。しかし、これはひどい解決策のようにも思えます -- 少なくとも 12 個のページ レベル テンプレートが base を継承しています。
私が思いついたもう 1 つの凡庸なアイデアは、両方の基本テンプレートをbase.html
巨大な "if" ステートメントと共に配置することでした。
確かにもっと良い方法がありますか?