跳转到主要内容

Django网站的扩展性、分层和可插拔导航系统

项目描述

一个适用于Django网站的扩展性、分层和可插拔导航系统。

django-treenav 从一开始就被设计成可以独立于 CMS 实现存在。作为一个独立的应用程序,treenav 可以轻松集成到现有的自定义设置中,并且不强制或要求用户使用特定的内容管理系统。

遵循相同的原理,django-pagelets 与 treenav 无缝集成,可以一起使用以创建灵活的 CMS 产品。

要查看完整文档,请访问 http://django-treenav.readthedocs.org

功能

  • 具有多个 URL 规范的通用功能:get_absolute_url()reverse() 或原始 URL

  • 包含模板以渲染嵌套 <ul> 的树层次结构,但可以轻松用自定义模板覆盖

  • 可以轻松自定义每个项目的模板或回退到默认的 menuitem.html

  • 有用的 CSS 类,可灵活自定义 UI

  • 如果 PATH_INFO 等于 item.href,则自动将“活动”状态设置为项目及其父项目

  • 高效:通过 django-mptt 功能最小化数据库访问

  • 缓存树,以便重复的页面视图不会击中数据库。

  • MenuItem 列表视图中提供简单的链接,用于刷新缓存和从数据库中的 href。

要求

使用演示

要进行快速演示,请按照以下步骤操作

  1. 创建一个 virtualenv。 (此示例使用 mkvirtualenv,但还有许多其他方法可以做到这一点)

    $ mkvirtualenv django-treenav
  2. 检出代码并安装要求

    (django-treenav)$ git clone git://github.com/caktus/django-treenav.git
    (django-treenav)$ cd django-treenav/
    (django-treenav)~/django-treenav/$ pip install -Ur dev-requirements.txt
  3. 运行迁移并创建一个超级用户,以便您可以登录到 Django 管理员

    (django-treenav)~/django-treenav$ python manage.py migrate
    (django-treenav)~/django-treenav$ python manage.py createsuperuser
  4. 运行服务器

    (django-treenav)~/django-treenav$ python manage.py runserver
  5. 在浏览器中访问 http://localhost:8000/,并遵循说明。

安装

  1. 使用 pip 安装应用程序

    pip install django-treenav
  2. 将其添加到您的 INSTALLED_APPS 并运行迁移

    INSTALLED_APPS = (
        ...,
        'mptt',
        'treenav',
    )
  3. 包括这些上下文处理器

    TEMPLATES = [
      {
        'OPTIONS': {
          'context_processors': [
            "django.template.context_processors.request",
            "treenav.context_processors.treenav_active",
          ],
        },
      },
    ]
  4. 添加这些 URL

    urlpatterns = [
        url(r'^treenav/', include('treenav.urls')),
    ]

维护者信息

我们使用 Github Actions 来 lint(使用 pre-commit、black、isort 和 flake8)、测试(使用 tox 和 tox-gh-actions)、计算覆盖率(使用 coverage)以及构建文档(使用 sphinx)。

我们有一个本地脚本来执行这些操作,命名为 maintain.sh

$ ./maintain.sh

Github Action 工作流程还会在 Github 中创建新的发布时构建并推送新的软件包到 PyPI。这使用特定于项目的 PyPI 令牌,如 PyPI 文档中所述。该令牌已保存在此存储库的 PYPI_PASSWORD 设置中,但未在其他地方保存。因此,如果出于任何原因需要它,则应删除当前的令牌并生成新的令牌。

始终记得在创建发布之前在 treenav/__init__.py 中增加版本号,以便将正确的版本推送到 PyPI。

开发由 Caktus 咨询集团,LLC 赞助。

项目详情


下载文件

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

源分发

django-treenav-2.0.0.tar.gz (19.4 kB 查看哈希)

上传于 源代码

构建分发版

django_treenav-2.0.0-py2.py3-none-any.whl (25.2 kB 查看哈希值)

上传于 Python 2 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页