nautobot.apps.utils
¶
Nautobot utility functions.
nautobot.apps.utils.get_url_for_url_pattern(url_pattern)
¶
Given a URL pattern, construct a URL string that would match that pattern.
Examples:
>>> get_url_for_url_pattern("/plugins/example-plugin/^models/(?P<pk>[^/.]+)/$")
'/plugins/example-plugin/models/00000000-0000-0000-0000-000000000000/'
>>> get_url_for_url_pattern("/circuits/circuit-terminations/<uuid:termination_a_id>/connect/<str:termination_b_type>/")
'/circuits/circuit-terminations/00000000-0000-0000-0000-000000000000/connect/string/'
Source code in nautobot/utilities/utils.py
nautobot.apps.utils.get_url_patterns(urlconf=None, patterns_list=None, base_path='/')
¶
Recursively yield a list of registered URL patterns.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
urlconf |
URLConf
|
Python module such as |
None
|
patterns_list |
list
|
Used in recursion. Generally can be omitted on initial call.
Default if unspecified is the |
None
|
base_path |
str
|
String to prepend to all URL patterns yielded.
Default if unspecified is the string |
'/'
|
Yields:
Type | Description |
---|---|
str
|
Each URL pattern defined in the given urlconf and its descendants |
Examples:
>>> generator = get_url_patterns()
>>> next(generator)
'/'
>>> next(generator)
'/search/'
>>> next(generator)
'/login/'
>>> next(generator)
'/logout/'
>>> next(generator)
'/circuits/circuits/<uuid:pk>/terminations/swap/'
>>> import example_plugin.urls as example_urls
>>> for url_pattern in get_url_patterns(example_urls, base_path="/plugins/example-plugin/"):
... print(url_pattern)
...
/plugins/example-plugin/
/plugins/example-plugin/config/
/plugins/example-plugin/models/<uuid:pk>/dynamic-groups/
/plugins/example-plugin/other-models/<uuid:pk>/dynamic-groups/
/plugins/example-plugin/docs/
/plugins/example-plugin/circuits/<uuid:pk>/example-plugin-tab/
/plugins/example-plugin/devices/<uuid:pk>/example-plugin-tab-1/
/plugins/example-plugin/devices/<uuid:pk>/example-plugin-tab-2/
/plugins/example-plugin/override-target/
/plugins/example-plugin/^models/$
/plugins/example-plugin/^models/add/$
/plugins/example-plugin/^models/import/$
/plugins/example-plugin/^models/edit/$
/plugins/example-plugin/^models/delete/$
/plugins/example-plugin/^models/all-names/$
/plugins/example-plugin/^models/(?P<pk>[^/.]+)/$
/plugins/example-plugin/^models/(?P<pk>[^/.]+)/delete/$
/plugins/example-plugin/^models/(?P<pk>[^/.]+)/edit/$
/plugins/example-plugin/^models/(?P<pk>[^/.]+)/changelog/$
/plugins/example-plugin/^models/(?P<pk>[^/.]+)/notes/$
/plugins/example-plugin/^other-models/$
/plugins/example-plugin/^other-models/add/$
/plugins/example-plugin/^other-models/edit/$
/plugins/example-plugin/^other-models/delete/$
/plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/$
/plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/delete/$
/plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/edit/$
/plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/changelog/$
/plugins/example-plugin/^other-models/(?P<pk>[^/.]+)/notes/$