2016-04-02 6 views
0

2つのアプリがあります。どちらも、index.htmlが拡張する異なるbase.htmlテンプレートを持っています。 index.htmlは各アプリで異なります。Djangoの同じbase.htmlから2つのアプリケーションが拡張されました

しかし、何らかの理由で、それは同じアプリケーションからのみbase.htmlで拡張されますか?これはどのように可能ですか?

これは、それは私の私のindex.htmlテンプレートの両方にどのように見えるかです:

{% extends 'base.html' %} 

答えて

1

はどのようにあなたのtemplate/ディレクトリ構造が設定されていますか? index.htmlテンプレートがbase.htmlから拡張されている場合、Djangoはルートテンプレートディレクトリにあるbase.htmlを選択します。

ソリューション: どちらかbase2.htmlような何かにあなたのbase.htmlのいずれかのテンプレートの名前を変更し、base1.htmlと一緒templates/に入れて、またはにbase.htmlファイルを置くためにtemplates/に新しいディレクトリを作成します。

ソリューションAの場合、適切なindex.htmlテンプレートで{% extends base.html %}{% extends base2.html %}に変更してください。

解決策Bの場合、base.htmlファイルは同じ名前を保持しますが、異なるディレクトリに存在します。つまり、1つはtemplates/base1/base.html、もう1つはtemplates/base2/base.htmlです。ファイルindex.htmlは、{% extends base1/base.html %}{% extends base2/base.html %}のように拡張されます。すべての拡張パスは、選択したテンプレートディレクトリのルートからの相対パスであることに注意してください。

IMOソリューションBは、テンプレートベースのコードを明示的に名前の異なる別のフォルダに分けるため、より優れています。将来的に組織/柔軟性が向上し、混乱が少なくなります。

関連する問題