2017-07-19 3 views
0

"base.html"という1つの基本テンプレートを持つDjangoアプリがあります。このテンプレートは、ウェブサイト内のすべてのページのルック&フィールを提供します。これらのページの多くではありますが、私はデータベースからデータを取り出し、一貫したフォーマットで表示したいと考えています。私は、 "base2.html"と呼ばれる別のベースで、そのフォーマットのテンプレートを作成したいと思います。これは、データを表示するページでは、 "base.html"と "base2.html"の両方を拡張する必要があることを意味します。同じページの2つのhtmlページからどのように拡張できますか?私はこれをしようとdjangoで複数の基本テンプレートを参照できますか?

+2

あなたは '{%include 'template.html'%}'タグを使いたいと思います。 –

答えて

0

あなたが別のベースをしたいビューで

私は次のように要求データにキーを送信しますので、parent_template.htmlでviews.py

def some_view_one(request): 
    different_base = "base1.html" 
    return render(request, 'customer/parent_template.html', {'different_base': different_base}) 

def some_view_two(request): 
    different_base = "base2.html" 
    return render(request, 'customer/parent_template.html', {'different_base': different_base}) 

非常に最初の行に。

{% extend different_base %} 

view_oneがbase1.htmlとview_twoを延長することをここで注意が

が同じことを試していないbase2.htmlを延長します。

お知らせください。

+0

これは意味があります。要するに、あなたは2つの基盤を作っています。あなたがデータベースからデータを引っ張っていないときのための1つの基盤と、あなたがいるときには1つの基盤。そして、必要に応じて、どちらか一方の基盤から拡張します。それは素晴らしい解決策です。ありがとう。 – henrich

+0

動作している場合はお知らせください。テンプレートタグを使用してこの機能を実行することもできますが、シナリオの理解がさらに必要です。 –

+0

これは、データを1回プルするときに機能します。私の場合、タイトル、著者、公開日などの属性を持つ記事がデータベースにあります。この情報をWebページに公開すると、各記事の情報がそれぞれのボックスに表示され、そのボックスが必要になります(ボックスのCSS/HTMLはテンプレートでなければなりません)。私の問題は、基本テンプレートにボックスを置くことができず、forループを使ってアーティクル情報を表示するときに、そのボックスを何度も表示する必要があるからです。 – henrich

関連する問題