在 Django 中,如果我有一个页面,假设它包含以下块:
1) 主要内容
2) 相关内容
3) 新文章
4) 广告块
5) 全站标签云
我是否应该在视图中为这些块准备所有数据,然后通过上下文将其传递给模板?如果我这样做,每次我需要某个页面上的块时,我都需要在视图中为其准备数据。但是,如果我想在网站的每个页面上放置一个新的文章块怎么办?这意味着我需要在每个视图中为此块准备数据并将其传递给模板,这不是很干燥。
我看到的另一个选项是创建一个模板标签,它查询数据库并获取最新文章,然后您只需将此标签放在您需要的每个模板上,但据我了解,这违反了主要准则,该准则告诉您应该使用标签仅用于显示目的(这对在模板标签中进行数据库查询没有好处)。
您使用/推荐哪种方式在 Django 中显示块?