跳转到主要内容

Wagtail Nav Menus 是一个利用 StreamFields 提供高度可定制菜单的应用程序。

项目描述

Wagtail Nav Menus 是一个利用 StreamFields 提供高度可定制菜单的应用程序。

为什么

记得那些网站有逻辑上遵循相同结构的树形结构菜单吗?对于许多人来说,那些日子已经过去了。我们被要求创建任意菜单项,将值属性放在不是链接的菜单中,并使用 JavaScript 构建高度交互式的菜单。

Wagtail Nav Menus 通过使用流字段来支持菜单中的任意项,并为您提供选项,以将菜单渲染为 django 模板或 json,以便您的 JavaScript 工具使用。

demo.png

内置组件

  • 导航类别 - 其他组件的分组 - 用于子导航等

  • 页面链接 - 指向Wagtail页面的链接

  • 外部链接 - Django URLField链接

  • Django链接 - 反向查找Django视图

  • 相对URL - 正则表达式强制执行的相对链接

  • 图片

  • HTML

安装

  1. 使用pip安装wagtail-nav-menus。

  2. 将wagtail_nav_menus添加到INSTALLED_APPS。

设置

您可以使用类似的方法添加其他streamfields

from wagtail_nav_menus.defaults import WAGTAIL_NAV_MENU_TYPES_DEFAULT

WAGTAIL_NAV_MENU_TYPES = WAGTAIL_NAV_MENU_TYPES_DEFAULT + [
    ('page_link_with_image', 'nav_menus_ext.models', 'InternalPageImageBlock'),
    ('page_link_with_image', 'nav_menus_ext.models', 'NavAdvertBlock'),
]

此处的模式是('名称','模块路径','类名')

编辑菜单名称选项。默认为顶部和页脚。这些代表您的网页上的不同菜单。名称是任意的 - 但您将在模板中通过名称查找它们。

WAGTAIL_NAV_MENU_CHOICES_DEFAULT = (
    ("top", "Top"),
    ("footer", "Footer"),
)

用法

导航菜单应出现在Wagtail的设置侧边栏标签中。CMS用户可以在此处控制它们。

您可以使用一些模板标签在您的网站上使用这些标签。

get_nav_menu

使用此方法使用Django模板插入菜单

{% load nav_menu_tags %}
{% get_nav_menu 'footer' %}

请参阅此存储库中的[模板文件夹](wagtail_nav_menus/templates/),以获取渲染菜单的示例。您需要将它们复制到您项目的模板文件夹中以便扩展。

get_nav_menu_json

使用此方法获取菜单作为JSON对象。

{% load nav_menu_tags %}
{% get_nav_menu_json 'top' as top %}
<div data-menu='{{ top }}'></div>

API使用

如果使用Django Rest Framework访问菜单数据,此模块提供了一些开始使用的方法。

将NavMenuViewSet添加到您的Rest Framework路由器。

from wagtail_nav_menus.viewsets import NavMenuViewSet

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

wagtail_nav_menus-3.11.1.tar.gz (14.9 kB 查看哈希值)

上传时间

构建分布

wagtail_nav_menus-3.11.1-py3-none-any.whl (20.4 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面