Skip to content

jazzband/django-simple-menu

django-simple-menu Latest version on PyPI

Jazzband Build Status Test coverage status Documentation status Supported Python versions Supported Django versions

django-simple-menu is an entirely code based menu system, because, who really wants to define their menus inside Django Admin?..

It's simple to use, yet provides enough flexibility to provide unlimited children menus, per-request generation and checking of menu items, badges, and more.

Quickstart

Requirements: Python 3.6+, Django 3.2+

Note: While this package does support Python 3.6 and 3.7 as well as Django 4.0, we do not test the package under these versions and may miss some bugs.

  1. Install the django-simple-menu package.
  2. Add simple_menu to your INSTALLED_APPS.
    • please ensure that you have django.template.context_processors.request listed under TEMPLATES[...]["OPTIONS"]["context_processors"].
  3. Create menus.py inside each app you want to create a menu for and define said menus using the Menu and MenuItem classes you can import from the simple_menu package.
  4. In your templates, load the template tags ({% load simple_menu %}) and call {% generate_menu %} inside a block. Your context will be populated with a new object named menus. You can now iterate over it to render your menus.

To quickly see django-simple-menu in action, check out the example project.

More

Full documentation, including installation and configuration instructions, is available at https://django-simple-menu.readthedocs.io/.

django-simple-menu is released under the BSD 2-Clause "Simplified" License. If you like it, please consider contributing!

django-simple-menu was originally created by Evan Borgstom <evan@borgstrom.ca> and was further developed by many contributors.