我有这个项目,我正在努力,它有2个应用程序。 主应用程序:有页面(主页,关于,联系) 库存应用程序:具有模型(类别,产品,标记等)。
现在导航栏始终显示类别下拉菜单,其中列出了5个类别或其中一些类别,并带有一个按钮以查看所有类别。
我正在使用基于类的视图,我可以覆盖get_context_data方法并查询Category模型并将其添加到每个页面渲染的上下文中,但我想知道是否有更好的方法可以解决这个问题。
答案 0 :(得分:0)
看看context processors。它可以自动将数据添加到上下文中,每个模板都可以访问它。您需要编辑settings.py以包含自定义函数的路径。
来自文档:
这是一个Python函数,它接受一个参数,一个HttpRequest对象,并返回一个添加到模板上下文的字典。每个上下文处理器都必须返回一个字典。
自定义上下文处理器可以存在于代码库中的任何位置。所有Django都关心的是,您的自定义上下文处理器由' context_processors'指向。 TEMPLATES设置中的选项 - 如果您直接使用它,则为Engine的context_processors参数。