Django CBV在每个页面上重复相同的查询

时间:2014-07-02 08:00:51

标签: django

我现在在我的Django应用程序中使用基于类的视图,它可以帮助我更快地开发。

我仍然对实施以下内容的最佳方式有疑问:

我的数据库中有一些信息,我几乎每个模板都需要这些信息(除了用户未登录的模板)。

使用Django制作它的好方法是什么?是否可以在.get()方法中使用自定义查询创建基于类的视图?

谢谢:)

1 个答案:

答案 0 :(得分:2)

有各种不同的方法可以做到这一点。

如果您始终在各处使用基于类的视图,则可以使用自定义get_context_data方法创建公共基类,该方法将您的特定数据添加到上下文字典中。

但解决此问题的更常用方法与基于类的视图无关,但适用于各种视图。它们是custom template tagscontext processors

对我来说,上下文处理器可能是最好的选择:只要您确保使用RequestContext呈现模板(如果您使用从TemplateView继承的任何视图,那么将会是这样),那么您的额外数据将始终被添加到模板上下文。