0

Djangoで、次のブロックで構成されているページがある場合:

1)メインコンテンツ
2)関連コンテンツ
3)新しい記事
4)広告ブロック
5)サイト全体のタグクラウド

ビュー内のこれらのブロックのすべてのデータを準備してから、コンテキストを介してテンプレートに渡す必要がありますか?このようにすると、あるページでブロックが必要になるたびに、ビューでそのブロックのデータを準備する必要があります。しかし、サイトのすべてのページに新しい記事ブロックを配置したい場合はどうなりますか?これは、すべてのビューでこのブロックのデータを準備し、それをテンプレートに渡す必要があることを意味しますが、これはあまり乾燥していません。

私が見るもう1つのオプションは、データベースにクエリを実行して最新の記事を取得するtemplatetagを作成することです。このタグを必要なすべてのテンプレートに貼り付けるだけですが、私が理解しているように、これはタグを次の目的で使用する必要があるという主要なガイドラインに反しています。表示目的のみ(これは、templatetagsでdbクエリを作成するのは適切ではありません)。

Djangoでブロックを表示するためにどの方法を使用/推奨しますか?

4

1 に答える 1

0

これにテンプレートタグを使用すべきではないことをどこで読みましたか? それどころか、これはまさにあなたがそれらを使うべきものです. たとえば、Django の初期の開発者の 1 人である James Bennett のブログ エントリで、それを正確に説明しています (このエントリの構文はかなり古くなっていますが、原則はまだ有効であることに注意してください)。

于 2012-12-22T16:59:20.557 に答える