django_simple_nav.nav

Module Contents

Classes

NavItemContext

A dict subclass that can render itself as HTML in templates.

Nav

NavItem

NavGroup

Functions

_build_renderable_context

Build a NavItemContext for a nav item, recursively wrapping children.

Data

API

django_simple_nav.nav.logger

‘getLogger(…)’

django_simple_nav.nav.USER_ATTRIBUTE_PERMISSIONS

‘frozenset(…)’

class django_simple_nav.nav.NavItemContext(data: dict[str, object], *, nav_item: django_simple_nav.nav.NavGroup | django_simple_nav.nav.NavItem | None = None, request: django.http.HttpRequest | None = None)

Bases: dict

A dict subclass that can render itself as HTML in templates.

Supports both dict-style access ({{ item.title }}) and self-rendering ({{ item }}) in Django templates. Rendering is lazy — the item’s template is only loaded and rendered when {{ item }} is used, not on construction.

Initialization

Initialize self. See help(type(self)) for accurate signature.

__str__() str
__html__() str
_render() str
django_simple_nav.nav._build_renderable_context(item: NavGroup | NavItem, request: django.http.HttpRequest) django_simple_nav.nav.NavItemContext

Build a NavItemContext for a nav item, recursively wrapping children.

class django_simple_nav.nav.Nav(*, template_name: str | None = None, items: list[django_simple_nav.nav.NavGroup | django_simple_nav.nav.NavItem] | None = None)

Initialization

template_name: str | None

‘field(…)’

items: list[NavGroup | NavItem] | None

‘field(…)’

render(request: django.http.HttpRequest, template_name: str | None = None) str
get_context_data(request: django.http.HttpRequest) dict[str, object]
get_items(request: django.http.HttpRequest) list[django_simple_nav.nav.NavGroup | django_simple_nav.nav.NavItem]
get_template(template_name: str | None = None) django_simple_nav._typing.EngineTemplate
get_template_name() str
class django_simple_nav.nav.NavItem
title: str

None

url: str | collections.abc.Callable[..., str] | django.utils.functional.Promise | None

None

permissions: list[str | collections.abc.Callable[[django.http.HttpRequest], bool]]

‘field(…)’

extra_context: dict[str, object]

‘field(…)’

append_slash: bool | None

None

template_name: str | None

None

get_context_data(request: django.http.HttpRequest) dict[str, object]
get_template_name() str
render(request: django.http.HttpRequest) str
get_title() str
get_url() str
get_active(request: django.http.HttpRequest) bool
get_items(request: django.http.HttpRequest) list[django_simple_nav.nav.NavGroup | django_simple_nav.nav.NavItem] | None
check_permissions(request: django.http.HttpRequest) bool
class django_simple_nav.nav.NavGroup

Bases: django_simple_nav.nav.NavItem

items: list[django_simple_nav.nav.NavGroup | django_simple_nav.nav.NavItem]

‘field(…)’

get_template_name() str
get_context_data(request: django.http.HttpRequest) dict[str, object]
get_items(request: django.http.HttpRequest) list[django_simple_nav.nav.NavGroup | django_simple_nav.nav.NavItem]
get_url() str
get_active(request: django.http.HttpRequest) bool
check_permissions(request: django.http.HttpRequest) bool