在Django中,我有一个侧栏导航菜单,它有自己的include文件(我们称之为sidebar.html)。在sidebar.html中,我有时会加载一个特殊的菜单,具体取决于我访问的页面。此特殊菜单是从数据库生成的,因此我需要在我的视图中运行类似的操作:
menu = Menu.objects.all()
然后我需要将这个变量传递给模板。然而,有大约30页我需要这个菜单。在我的视图文件中重复上述行30次似乎是一个重复的解决方案。有更好的方法吗
我只需要sidebar.html中的菜单变量,所以我只需要一个文件
Tags:
方法是创建一个上下文处理器(将项目添加到所有请求的上下文中),将菜单添加到上下文中
例如
然后将其添加到
context_processors
中的settings.py
完成此操作后,所有模板将在其上下文中接收
menu
,而不会在每个视图中写入它您可以进一步了解django上下文处理器here
相关问题 更多 >
编程相关推荐