flex_menu.utils#

Helper functions for URL resolution and parameter extraction.

Module Contents#

Functions#

get_required_url_params

Return the required URL parameter names for a Django view name.

API#

get_required_url_params(view_name: str) → frozenset[source]#

Return the required URL parameter names for a Django view name.

Supports both simple view names (“home”) and namespaced view names (“app:home”). Parameters captured by parent resolver prefixes (e.g. “<str:uuid>/” in an include() prefix) are included.

Relies on Django’s own pre-built resolver structures (namespace_dict, reverse_dict), so each call is O(1) dict lookups with no caching needed.

Parameters:

view_name – A Django view name as used in reverse(), optionally namespaced (e.g. “app:home”).

Returns:

The names of the required URL parameters, e.g. {“pk”} or {“slug”}.

Raises:

NoReverseMatch – If the namespace or view name cannot be found.