0

在 Django 中,如果我有一个页面,假设它包含以下块:

1) 主要内容
2) 相关内容
3) 新文章
4) 广告块
5) 全站标签云

我是否应该在视图中为这些块准备所有数据,然后通过上下文将其传递给模板?如果我这样做,每次我需要某个页面上的块时,我都需要在视图中为其准备数据。但是,如果我想在网站的每个页面上放置一个新的文章块怎么办?这意味着我需要在每个视图中为此块准备数据并将其传递给模板,这不是很干燥。

我看到的另一个选项是创建一个模板标签,它查询数据库并获取最新文章,然后您只需将此标签放在您需要的每个模板上,但据我了解,这违反了主要准则,该准则告诉您应该使用标签仅用于显示目的(这对在模板标签中进行数据库查询没有好处)。

您使用/推荐哪种方式在 Django 中显示块?

4

1 回答 1

0

你在哪里读到你不应该为此使用模板标签?相反,这正是您应该使用它们的目的。例如,这里是 Django 的早期开发者之一 James Bennett 的博客文章,准确地描述了这一点(请注意,该文章中的语法已经过时,但原则仍然有效)。

于 2012-12-22T16:59:20.557 回答