Getting Started#
This guide walks you through installing and setting up django-flex-menus.
Installation#
Install via pip:
pip install django-flex-menus
Add to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = [
# Django apps
'django.contrib.admin',
'django.contrib.auth',
# ...
# Third-party apps
'flex_menu',
# Your apps
'myapp',
]
Configuration#
Configure renderers in settings.py:
FLEX_MENUS = {
"renderers": {
"navbar": "my.custom.NavbarRenderer",
"mobile_navbar": "my.custom.MobileNavbarRenderer",
"sidebar": "my.custom.SidebarRenderer",
},
}
Note
Renderers are referenced by name in templates. You can configure as many renderers as needed.
URL Resolution#
Three ways to specify URLs:
1. Static URL string:
MenuItem(name="home", url="/")
2. Django view name:
MenuItem(name="about", view_name="about")
MenuItem(name="profile", view_name="user:profile")
3. View name with URL parameters:
MenuItem(
name="category",
view_name="blog:category",
)
MenuItem(
name="author",
view_name="blog:author",
)
Then pass the URL parameters in your template:
{% load flex_menu %}
{% render_menu "main" category="tech" slug="john" %}
Next Steps#
Building Menus - Learn all menu features
Manipulating Menus - Tree operations and dynamic building
Template Usage - Template tags and rendering
Visibility Checks - Control who sees what
Custom Renderers - Build your own renderer