Django的简单菜单中间件
django-menu-gauteron的Python项目详细描述
django菜单
这个包是一个简单的Django中间件,用于使用 需要在模板中显示的信息。在
使用
通过将该模块添加到MIDDLEWARE
中,将其集成到Django项目中
项目设置文件中的列表。在
MIDDLEWARE = [
...
'django_menu.middleware.menu_middleware',
]
菜单元素的设置方式与Django项目视图类似
在urlpatterns
中配置。根文件(通常命名为菜单.py")
应该在Django项目目录中创建。它的内容非常少
如下所示:
项目设置文件必须引用
ROOT_MENUCONF
变量。在
ROOT_MENUCONF = 'project.menu' # If the root file is "project/menu.py"
在项目视图和模板中,将引用菜单字典
作为request.menu
。在
配置
菜单项
在上述设置下,菜单为空。下一步是添加内容。 本单元提出了3种类型的内容:
- 一个标签-一个简单的标签没有任何链接的网址
- 菜单项-与URL或视图相关的单个菜单项。在
- 菜单组-一组菜单项。模板实现可以 决定将所有子项分组为可展开树
这些内容是通过从django_menu模块调用函数来添加的。在
label(name, condition=None, **kwargs)
用于向菜单添加标签:
name
参数定义要显示的名称。在condition
参数指定一个可选的可调用函数,它返回 如果必须显示标签,则布尔值为True;否则为False。在
menu(name, viewname=None, url=None, condition=None, alternate_views=[], **kwargs)
用于添加条目
到菜单:
name
参数定义要显示的名称。在viewname
用于引用在中定义的Django视图名称urlpatterns
。视图名称通常用于 参考项目内部视图。在url
参数用于引用完整的URL,通常用于 项目外部的链接。在condition
参数指定一个可选的可调用函数,它返回 否则,布尔值必须显示为“真”或“假”。在alternate_views
参数指定一个带有视图名的可选列表 这应该会激活链接。在
必须给定viewname
或{
menugroup(name, entries, condition=None, **kwargs)
用于按层次对菜单分组
物品放在一起。在
name
参数定义要显示的名称。在entries
是子菜单项(标签、菜单项或 另一个菜单组)。在condition
参数指定一个可选的可调用函数,它返回 如果必须显示菜单组,则布尔值为True,否则为False。在
对于所有函数,kwargs
收集所有其他命名参数并添加
菜单字典里也一样。这是一种方便用户
添加可由模板用于自定义处理的自己的选项
(例如,添加图标、颜色、自定义CSS类等)。在
示例
from django_menu import label, menu, menugroup
menu = [
label('Shop'),
menugroup('Food',
[
menugroup('Meat',
[
menu('Hamburger', viewname='hamburger', icon='fas fa-hamburger'),
],
icon='fas fa-drumstick-bite'),
menu('Pizza', viewname='pizza', icon='fas fa-pizza-slice'),
],
icon = 'fas fa-utensils'),
]
按应用程序的菜单配置
所有菜单可以在单个菜单根配置文件中配置。然而, 这不是很灵活和方便管理时,Django的数量 申请增加。在
它采用了一种类似于urlpatterns
的方法:它是
建议根菜单配置文件为每个应用程序菜单include
配置文件。在
示例
from django_menu import include
menu = [
*include('myapp.menu'), # To include the "myapp/menu.py" file
]
请注意,include
返回一个列表。未打包的列表元素必须
使用star*
运算符。在
版本
- 0.0.1Development version带有菜单、菜单组、标签的初始版本 包括支持。实现了主动视图支持。在
- 0.0.2Development version添加菜单的条件存在 项目。在
- 0.0.3Development version向添加备用视图从激活链接 多个视图。在
- 项目
标签: