在每个页面中提供数据库下拉列表

时间:2016-08-20 15:22:30

标签: django django-models django-templates django-queryset

我有这个项目,我正在努力,它有2个应用程序。 主应用程序:有页面(主页,关于,联系) 库存应用程序:具有模型(类别,产品,标记等)。

现在导航栏始终显示类别下拉菜单,其中列出了5个类别或其中一些类别,并带有一个按钮以查看所有类别。

我正在使用基于类的视图,我可以覆盖get_context_data方法并查询Category模型并将其添加到每个页面渲染的上下文中,但我想知道是否有更好的方法可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

看看context processors。它可以自动将数据添加到上下文中,每个模板都可以访问它。您需要编辑settings.py以包含自定义函数的路径。

来自文档:

  

这是一个Python函数,它接受一个参数,一个HttpRequest对象,并返回一个添加到模板上下文的字典。每个上下文处理器都必须返回一个字典。

     

自定义上下文处理器可以存在于代码库中的任何位置。所有Django都关心的是,您的自定义上下文处理器由' context_processors'指向。 TEMPLATES设置中的选项 - 如果您直接使用它,则为Engine的context_processors参数。